summaryrefslogtreecommitdiffstats
path: root/ffd/ffd.h
diff options
context:
space:
mode:
Diffstat (limited to 'ffd/ffd.h')
-rw-r--r--ffd/ffd.h49
1 files changed, 19 insertions, 30 deletions
diff --git a/ffd/ffd.h b/ffd/ffd.h
index 90fefb6..c78c4a4 100644
--- a/ffd/ffd.h
+++ b/ffd/ffd.h
@@ -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_ */