diff options
Diffstat (limited to 'ffd/ffd.h')
-rw-r--r-- | ffd/ffd.h | 49 |
1 files changed, 19 insertions, 30 deletions
@@ -28,46 +28,35 @@ #define _FFD_FFD_H_ #include "util.h" +#include "netif.h" +#include <net/if.h> -typedef enum _ffd_msg_type_t { - MSG_UNSPEC = 0, - MSG_SERVICE, - MSG_ROUTE4, - MSG_ROUTE6, -} ffd_msg_type_t; -typedef struct _ffd_msg_head_t { - struct _ffd_msg_head_t *next; +typedef struct _ffd_announce_t { + struct _ffd_announce_t *next; - /* orig rev this message was added or removed last */ - uint64_t changed_rev; - bool deleted; - - ffd_msg_type_t type; - uint16_t len; + uint8_t type; + uint8_t len; uint8_t data[]; -} ffd_msg_head_t; - -typedef struct _ffd_orig_t { - struct _ffd_orig_t *next; - - /* neigh rev this orig has changed last */ - uint64_t changed_rev; - struct timespec changed_time; - - uint64_t rev; - eth_addr_t addr; - uint16_t orig_interval; - - ffd_msg_head_t *messages; -} ffd_orig_t; +} ffd_announce_head_t; typedef struct _ffd_neigh_t { struct _ffd_neigh_t *next; - uint64_t rev; eth_addr_t addr; } ffd_neigh_t; +typedef struct _ffd_iface_t { + struct _ffd_iface_t *next; + + unsigned ifindex; + char name[IF_NAMESIZE]; + + netif_type_t type; + uint16_t seqno; + + ffd_neigh_t *neighs; +} ffd_iface_t; + #endif /* _FFD_FFD_H_ */ |