summaryrefslogtreecommitdiffstats
path: root/proto/ospf/ospf.h
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/ospf.h')
-rw-r--r--proto/ospf/ospf.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h
index 7ba566f..a9860cf 100644
--- a/proto/ospf/ospf.h
+++ b/proto/ospf/ospf.h
@@ -38,8 +38,8 @@ struct ospf_iface {
list neigh_list; /* List of neigbours */
u32 area; /* OSPF Area */
u16 cost; /* Cost of iface */
- int rxmtint; /* number of seconds between LSA retransmissions */
- int iftransdelay; /* The estimated number of seconds it takes to
+ u16 rxmtint; /* number of seconds between LSA retransmissions */
+ u16 iftransdelay; /* 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 */
@@ -52,11 +52,11 @@ struct ospf_iface {
u32 drid;
ip_addr bdrip; /* Backup DR */
u32 bdrid;
- int type; /* OSPF view of type */
+ u8 type; /* OSPF view of type */
#define OSPF_IT_BROADCAST 0
#define OSPF_IT_NBMA 1
#define OSPF_IT_PTP 2
- int state; /* Interface state machine */
+ u8 state; /* Interface state machine */
#define OSPF_IS_DOWN 0 /* Should never happen */
#define OSPF_IS_WAITING 1 /* Waiting for Wait timer */
#define OSPF_IS_PTP 2 /* PTP operational */
@@ -65,6 +65,7 @@ struct ospf_iface {
#define OSPF_IS_DR 5 /* I'm DR */
timer *wait_timer; /* WAIT timer */
timer *hello_timer; /* HELLOINT timer */
+ timer *rxmt_timer; /* RXMT timer */
/* Default values for interface parameters */
#define COST_D 10
#define RXMTINT_D 5
@@ -81,7 +82,7 @@ struct ospf_patt {
struct iface_patt i;
u16 cost;
- byte mode;
+ u8 mode;
};
struct ospf_packet {
@@ -111,18 +112,34 @@ struct ospf_hello_packet {
u32 bdr;
};
-struct ospf_ddseq_packet {
+struct ospf_dbdes_packet {
struct ospf_packet ospf_packet;
u16 iface_mtu;
- u16 options;
- u32 ddseq_no;
+ u8 options;
+ u8 imms; /* I, M, MS bits */
+#define DBDES_MS 1
+#define DBDES_M 2
+#define DBDES_I 4
+ u32 ddseq;
};
+struct ospf_lsaheader {
+ u16 lsage; /* LS Age */
+ u8 options;
+ u8 lstype;
+ u32 lsid;
+ u32 advr; /* Advertising router */
+ u32 lssn; /* LS Sequence number */
+ u16 checksum;
+ u16 length;
+};
+
+
struct ospf_neighbor
{
node n;
struct ospf_iface *ifa;
- int state;
+ u8 state;
#define NEIGHBOR_DOWN 0
#define NEIGHBOR_ATTEMPT 1
#define NEIGHBOR_INIT 2
@@ -132,14 +149,13 @@ struct ospf_neighbor
#define NEIGHBOR_LOADING 6
#define NEIGHBOR_FULL 7
timer *inactim; /* Inactivity timer */
- byte ms; /* Master/slave */
-#define NEIGHBOR_SLAVE 0
-#define NEIGHBOR_MASTER 1
+ u8 imms; /* I, M, Master/slave */
+ u8 myimms;
u32 dds; /* DD Sequence number being sentg */
u32 ddr; /* last Dat Des packet */
u32 rid; /* Router ID */
- byte priority; /* Priority */
- byte options; /* Options */
+ u8 priority; /* Priority */
+ u8 options; /* Options */
u32 dr; /* Neigbour's idea of DR */
u32 bdr; /* Neigbour's idea of BDR */
u8 adj; /* built adjacency? */