diff options
author | Ondrej Filip <feela@network.cz> | 2004-06-09 14:39:49 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2004-06-09 14:39:49 +0200 |
commit | 7df86c25fc6c871795265faebe02bf4dcecdd190 (patch) | |
tree | 01bcb5c60d05ff1dd10a79cf43f7535345b8154e /proto/ospf | |
parent | b7e9c74cba36ed6932dbc30a4b9b0b9f9a06dba5 (diff) | |
download | bird-7df86c25fc6c871795265faebe02bf4dcecdd190.tar bird-7df86c25fc6c871795265faebe02bf4dcecdd190.zip |
Better checking of configuration.
Diffstat (limited to 'proto/ospf')
-rw-r--r-- | proto/ospf/config.Y | 15 | ||||
-rw-r--r-- | proto/ospf/ospf.h | 30 |
2 files changed, 22 insertions, 23 deletions
diff --git a/proto/ospf/config.Y b/proto/ospf/config.Y index f92109e..3a9904f 100644 --- a/proto/ospf/config.Y +++ b/proto/ospf/config.Y @@ -81,14 +81,14 @@ ospf_area_item: ; ospf_iface_item: - COST expr { OSPF_PATT->cost = $2 ; if($2<=0) cf_error("Cost must be greater than zero"); } - | HELLO expr { OSPF_PATT->helloint = $2 ; if($2<=0) cf_error("Hello int must be greater than zero"); } - | POLL expr { OSPF_PATT->pollint = $2 ; if($2<=0) cf_error("Poll int must be greater than zero"); } - | RETRANSMIT expr { OSPF_PATT->rxmtint = $2 ; if($2<=0) cf_error("Retransmit int must be greater than zero"); } - | TRANSMIT DELAY expr { OSPF_PATT->inftransdelay = $3 ; if($3<=0) cf_error("Transmit delay must be greater than zero"); } - | PRIORITY expr { OSPF_PATT->priority = $2 ; } + COST expr { OSPF_PATT->cost = $2 ; if (($2<=0) || ($2>65535)) cf_error("Cost must be in range 1-65535"); } + | HELLO expr { OSPF_PATT->helloint = $2 ; if (($2<=0) || ($2>65535)) cf_error("Hello interval must be in range 1-65535"); } + | POLL expr { OSPF_PATT->pollint = $2 ; if ($2<=0) cf_error("Poll int must be greater than zero"); } + | RETRANSMIT expr { OSPF_PATT->rxmtint = $2 ; if ($2<=0) cf_error("Retransmit int must be greater than zero"); } + | TRANSMIT DELAY expr { OSPF_PATT->inftransdelay = $3 ; if (($3<=0) || ($3>65535)) cf_error("Transmit delay must be in range 1-65535"); } + | PRIORITY expr { OSPF_PATT->priority = $2 ; if (($2<0) || ($2>255)) cf_error("Priority must be in range 0-255")} | WAIT expr { OSPF_PATT->waitint = $2 ; } - | DEAD COUNT expr { OSPF_PATT->deadc = $3 ; if($3<=1) cf_error("Dead count must be greater than one"); } + | DEAD COUNT expr { OSPF_PATT->deadc = $3 ; if ($3<=1) cf_error("Dead count must be greater than one"); } | TYPE BROADCAST { OSPF_PATT->type = OSPF_IT_BCAST ; } | TYPE NONBROADCAST { OSPF_PATT->type = OSPF_IT_NBMA ; } | TYPE POINTOPOINT { OSPF_PATT->type = OSPF_IT_PTP ; } @@ -98,7 +98,6 @@ ospf_iface_item: | AUTHENTICATION NONE { OSPF_PATT->autype=AU_NONE ; } | AUTHENTICATION SIMPLE { OSPF_PATT->autype=AU_SIMPLE ; } | PASSWORD TEXT { memcpy(OSPF_PATT->password, $2, 8); } - | ; pref_list: diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h index ea34ac8..b554013 100644 --- a/proto/ospf/ospf.h +++ b/proto/ospf/ospf.h @@ -104,14 +104,14 @@ struct ospf_iface sock *ip_sk; /* IP socket (for DD ...) */ list neigh_list; /* List of neigbours */ u16 cost; /* Cost of iface */ - u16 rxmtint; /* number of seconds between LSA retransmissions */ u16 inftransdelay; /* The estimated number of seconds it takes to transmit a Link State Update Packet over this interface. LSAs contained in the update */ u8 priority; /* A router priority for DR election */ u16 helloint; /* number of seconds between hello sending */ - u16 waitint; /* number of sec before changing state from wait */ - u16 pollint; /* Poll interval */ + u32 waitint; /* number of sec before changing state from wait */ + u32 rxmtint; /* number of seconds between LSA retransmissions */ + u32 pollint; /* Poll interval */ u32 deadc; /* after "deadint" missing hellos is router dead */ u16 autype; u8 aukey[8]; @@ -453,18 +453,18 @@ struct proto_ospf struct ospf_iface_patt { struct iface_patt i; - int cost; - int helloint; - int rxmtint; - int pollint; - int inftransdelay; - int priority; - int waitint; - int deadc; - int type; - int autype; - int strictnbma; - int stub; + u32 cost; + u32 helloint; + u32 rxmtint; + u32 pollint; + u32 inftransdelay; + u32 priority; + u32 waitint; + u32 deadc; + u32 type; + u32 autype; + u32 strictnbma; + u32 stub; /* must be in network byte order */ #define AU_NONE htons(0) #define AU_SIMPLE htons(1) |