From a103373f6147f27e4ac71e5903563e57ce52902c Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Thu, 9 Jul 1998 19:39:04 +0000 Subject: Commiting RIP. RIP should somehow listen, will not reply. I needed to commit it so that whole thing compiles. --- proto/rip/rip.h | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 proto/rip/rip.h (limited to 'proto/rip/rip.h') diff --git a/proto/rip/rip.h b/proto/rip/rip.h new file mode 100644 index 0000000..8bcd0ce --- /dev/null +++ b/proto/rip/rip.h @@ -0,0 +1,60 @@ +/* + * Structures for RIP protocol + */ + +struct rip_connection { + ip_addr addr; + struct rip_entry *sendptr; + sock *send; +}; + +struct rip_packet_heading { + u8 command; + u8 version; +#define RIP_V1 1 +#define RIP_V2 2 + u16 unused; +}; + +struct rip_block { + u16 family; /* 0xffff on first message means this is authentication */ + u16 tag; + u32 network; + u32 netmask; + u32 nexthop; + u32 metric; +}; + +struct rip_entry { + node n; + ip_addr whotoldme; + + ip_addr network; + ip_addr netmask; + ip_addr nexthop; + + int metric; + u16 tag; + + bird_clock_t updated, changed; +}; + +struct rip_packet { + struct rip_packet_heading heading; + struct rip_block block[25]; +}; + +struct rip_data { + struct proto inherited; + sock *listen; + timer *timer; + list connections; + list rtable; + int magic; +}; + +#define P ((struct rip_data *) p) +#define E ((struct rip_entry *) e) + +#define RIP_MAGIC 81861253 +#define CHK_MAGIC do { if (P->magic != RIP_MAGIC) die( "Not enough magic\n" ); } while (0) -- cgit v1.2.3