#include "lib/vty.h"
-#define TRUE 1
-#define FALSE 0
+#ifdef __cplusplus
+extern "C" {
+#endif
/* ICMP Messages */
#ifndef ICMP_ROUTERADVERT
#endif /* INADDR_ALLRTRS_GROUP */
/* Default irdp packet interval */
-#define IRDP_DEFAULT_INTERVAL 300
+#define IRDP_DEFAULT_INTERVAL 300
/* Router constants from RFC1256 */
#define MAX_INITIAL_ADVERT_INTERVAL 16
*/
struct irdp_interface {
+ bool started;
+
unsigned long MaxAdvertInterval;
unsigned long MinAdvertInterval;
unsigned long Preference;
- u_int32_t flags;
+ uint32_t flags;
#define IF_ACTIVE (1<<0) /* ICMP Active */
#define IF_BROADCAST (1<<1) /* 255.255.255.255 */
#define IF_SOLICIT (1<<2) /* Solicit active */
-#define IF_DEBUG_MESSAGES (1<<3)
-#define IF_DEBUG_PACKET (1<<4)
-#define IF_DEBUG_MISC (1<<5)
-#define IF_SHUTDOWN (1<<6)
+#define IF_DEBUG_MESSAGES (1<<3)
+#define IF_DEBUG_PACKET (1<<4)
+#define IF_DEBUG_MISC (1<<5)
+#define IF_SHUTDOWN (1<<6)
struct interface *ifp;
struct thread *t_advertise;
unsigned long irdp_sent;
- u_int16_t Lifetime;
+ uint16_t Lifetime;
struct list *AdvPrefList;
};
int pref;
};
-extern void irdp_init(void);
+extern void irdp_if_init(void);
extern int irdp_sock_init(void);
-extern void irdp_finish(void);
-extern void irdp_config_write(struct vty *, struct interface *);
+extern int irdp_config_write(struct vty *, struct interface *);
extern int irdp_send_thread(struct thread *t_advert);
extern void irdp_advert_off(struct interface *ifp);
extern void process_solicit(struct interface *ifp);
extern int irdp_read_raw(struct thread *r);
-extern void send_packet(struct interface *ifp, struct stream *s, u_int32_t dst,
- struct prefix *p, u_int32_t ttl);
+extern void send_packet(struct interface *ifp, struct stream *s, uint32_t dst,
+ struct prefix *p, uint32_t ttl);
+#ifdef __cplusplus
+}
+#endif
#endif /* _IRDP_H */