summaryrefslogtreecommitdiffstats
path: root/eigrpd/eigrp_structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'eigrpd/eigrp_structs.h')
-rw-r--r--eigrpd/eigrp_structs.h278
1 files changed, 140 insertions, 138 deletions
diff --git a/eigrpd/eigrp_structs.h b/eigrpd/eigrp_structs.h
index ea281fc97..95bcfe50e 100644
--- a/eigrpd/eigrp_structs.h
+++ b/eigrpd/eigrp_structs.h
@@ -52,43 +52,43 @@ struct eigrp_master {
time_t start_time;
/* Various EIGRP global configuration. */
- u_char options;
+ uint8_t options;
#define EIGRP_MASTER_SHUTDOWN (1 << 0) /* deferred-shutdown */
};
struct eigrp_metrics {
- u_int32_t delay;
- u_int32_t bandwidth;
+ uint32_t delay;
+ uint32_t bandwidth;
unsigned char mtu[3];
- u_char hop_count;
- u_char reliability;
- u_char load;
- u_char tag;
- u_char flags;
+ uint8_t hop_count;
+ uint8_t reliability;
+ uint8_t load;
+ uint8_t tag;
+ uint8_t flags;
};
struct eigrp {
- u_int16_t AS; /* Autonomous system number */
- u_int16_t vrid; /* Virtual Router ID */
- u_char k_values[6]; /*Array for K values configuration*/
- u_char variance; /*Metric variance multiplier*/
- u_char max_paths; /*Maximum allowed paths for 1 prefix*/
+ uint16_t AS; /* Autonomous system number */
+ uint16_t vrid; /* Virtual Router ID */
+ uint8_t k_values[6]; /*Array for K values configuration*/
+ uint8_t variance; /*Metric variance multiplier*/
+ uint8_t max_paths; /*Maximum allowed paths for 1 prefix*/
/*Name of this EIGRP instance*/
char *name;
/* EIGRP Router ID. */
- u_int32_t router_id; /* Configured automatically. */
- u_int32_t router_id_static; /* Configured manually. */
+ uint32_t router_id; /* Configured automatically. */
+ uint32_t router_id_static; /* Configured manually. */
struct list *eiflist; /* eigrp interfaces */
- u_char passive_interface_default; /* passive-interface default */
+ uint8_t passive_interface_default; /* passive-interface default */
unsigned int fd;
unsigned int maxsndbuflen;
- u_int32_t sequence_number; /*Global EIGRP sequence number*/
+ uint32_t sequence_number; /*Global EIGRP sequence number*/
struct stream *ibuf;
struct list *oi_write_q;
@@ -128,7 +128,7 @@ struct eigrp {
char *name;
struct route_map *map;
int metric_config;
- u_int32_t metric;
+ uint32_t metric;
} route_map[ZEBRA_ROUTE_MAX];
QOBJ_FIELDS
@@ -136,14 +136,14 @@ struct eigrp {
DECLARE_QOBJ_TYPE(eigrp)
struct eigrp_if_params {
- u_char passive_interface;
- u_int32_t v_hello;
- u_int16_t v_wait;
- u_char type; /* type of interface */
- u_int32_t bandwidth;
- u_int32_t delay;
- u_char reliability;
- u_char load;
+ uint8_t passive_interface;
+ uint32_t v_hello;
+ uint16_t v_wait;
+ uint8_t type; /* type of interface */
+ uint32_t bandwidth;
+ uint32_t delay;
+ uint8_t reliability;
+ uint8_t load;
char *auth_keychain; /* Associated keychain with interface*/
int auth_type; /* EIGRP authentication type */
@@ -172,10 +172,10 @@ struct eigrp_interface {
/* To which multicast groups do we currently belong? */
- u_char multicast_memberships;
+ uint8_t multicast_memberships;
/* EIGRP Network Type. */
- u_char type;
+ uint8_t type;
struct prefix *address; /* Interface prefix */
struct connected *connected; /* Pointer to connected */
@@ -190,22 +190,22 @@ struct eigrp_interface {
int on_write_q;
/* Statistics fields. */
- u_int32_t hello_in; /* Hello message input count. */
- u_int32_t update_in; /* Update message input count. */
- u_int32_t query_in; /* Querry message input count. */
- u_int32_t reply_in; /* Reply message input count. */
- u_int32_t hello_out; /* Hello message output count. */
- u_int32_t update_out; /* Update message output count. */
- u_int32_t query_out; /* Query message output count. */
- u_int32_t reply_out; /* Reply message output count. */
- u_int32_t siaQuery_in;
- u_int32_t siaQuery_out;
- u_int32_t siaReply_in;
- u_int32_t siaReply_out;
- u_int32_t ack_out;
- u_int32_t ack_in;
-
- u_int32_t crypt_seqnum; /* Cryptographic Sequence Number */
+ uint32_t hello_in; /* Hello message input count. */
+ uint32_t update_in; /* Update message input count. */
+ uint32_t query_in; /* Querry message input count. */
+ uint32_t reply_in; /* Reply message input count. */
+ uint32_t hello_out; /* Hello message output count. */
+ uint32_t update_out; /* Update message output count. */
+ uint32_t query_out; /* Query message output count. */
+ uint32_t reply_out; /* Reply message output count. */
+ uint32_t siaQuery_in;
+ uint32_t siaQuery_out;
+ uint32_t siaReply_in;
+ uint32_t siaReply_out;
+ uint32_t ack_out;
+ uint32_t ack_in;
+
+ uint32_t crypt_seqnum; /* Cryptographic Sequence Number */
/* Access-list. */
struct access_list *list[EIGRP_FILTER_MAX];
@@ -231,30 +231,32 @@ struct eigrp_neighbor {
struct eigrp_interface *ei;
/* EIGRP neighbor Information */
- u_char state; /* neigbor status. */
+ uint8_t state; /* neigbor status. */
- u_int32_t recv_sequence_number; /* Last received sequence Number. */
- u_int32_t init_sequence_number;
+ uint32_t recv_sequence_number; /* Last received sequence Number. */
+ uint32_t init_sequence_number;
/*If packet is unacknowledged, we try to send it again 16 times*/
- u_char retrans_counter;
+ uint8_t retrans_counter;
struct in_addr src; /* Neighbor Src address. */
- u_char os_rel_major; // system version - just for show
- u_char os_rel_minor; // system version - just for show
- u_char tlv_rel_major; // eigrp version - tells us what TLV format to use
- u_char tlv_rel_minor; // eigrp version - tells us what TLV format to use
+ uint8_t os_rel_major; // system version - just for show
+ uint8_t os_rel_minor; // system version - just for show
+ uint8_t tlv_rel_major; // eigrp version - tells us what TLV format to
+ // use
+ uint8_t tlv_rel_minor; // eigrp version - tells us what TLV format to
+ // use
- u_char K1;
- u_char K2;
- u_char K3;
- u_char K4;
- u_char K5;
- u_char K6;
+ uint8_t K1;
+ uint8_t K2;
+ uint8_t K3;
+ uint8_t K4;
+ uint8_t K5;
+ uint8_t K6;
/* Timer values. */
- u_int16_t v_holddown;
+ uint16_t v_holddown;
/* Threads. */
struct thread *t_holddown;
@@ -264,7 +266,7 @@ struct eigrp_neighbor {
struct eigrp_fifo *retrans_queue;
struct eigrp_fifo *multicast_queue;
- u_int32_t crypt_seqnum; /* Cryptographic Sequence Number. */
+ uint32_t crypt_seqnum; /* Cryptographic Sequence Number. */
/* prefixes not received from neighbor during Graceful restart */
struct list *nbr_gr_prefixes;
@@ -291,12 +293,12 @@ struct eigrp_packet {
struct thread *t_retrans_timer;
/*Packet retransmission counter*/
- u_char retrans_counter;
+ uint8_t retrans_counter;
- u_int32_t sequence_number;
+ uint32_t sequence_number;
/* EIGRP packet length. */
- u_int16_t length;
+ uint16_t length;
struct eigrp_neighbor *nbr;
};
@@ -309,14 +311,14 @@ struct eigrp_fifo {
};
struct eigrp_header {
- u_char version;
- u_char opcode;
- u_int16_t checksum;
- u_int32_t flags;
- u_int32_t sequence;
- u_int32_t ack;
- u_int16_t vrid;
- u_int16_t ASNumber;
+ uint8_t version;
+ uint8_t opcode;
+ uint16_t checksum;
+ uint32_t flags;
+ uint32_t sequence;
+ uint32_t ack;
+ uint16_t vrid;
+ uint16_t ASNumber;
char *tlv[0];
} __attribute__((packed));
@@ -332,109 +334,109 @@ struct eigrp_header {
* +-----+------------------+
*/
struct eigrp_tlv_hdr_type {
- u_int16_t type;
- u_int16_t length;
+ uint16_t type;
+ uint16_t length;
uint8_t value[0];
} __attribute__((packed));
struct TLV_Parameter_Type {
- u_int16_t type;
- u_int16_t length;
- u_char K1;
- u_char K2;
- u_char K3;
- u_char K4;
- u_char K5;
- u_char K6;
- u_int16_t hold_time;
+ uint16_t type;
+ uint16_t length;
+ uint8_t K1;
+ uint8_t K2;
+ uint8_t K3;
+ uint8_t K4;
+ uint8_t K5;
+ uint8_t K6;
+ uint16_t hold_time;
} __attribute__((packed));
struct TLV_MD5_Authentication_Type {
- u_int16_t type;
- u_int16_t length;
- u_int16_t auth_type;
- u_int16_t auth_length;
- u_int32_t key_id;
- u_int32_t key_sequence;
- u_char Nullpad[8];
- u_char digest[EIGRP_AUTH_TYPE_MD5_LEN];
+ uint16_t type;
+ uint16_t length;
+ uint16_t auth_type;
+ uint16_t auth_length;
+ uint32_t key_id;
+ uint32_t key_sequence;
+ uint8_t Nullpad[8];
+ uint8_t digest[EIGRP_AUTH_TYPE_MD5_LEN];
} __attribute__((packed));
struct TLV_SHA256_Authentication_Type {
- u_int16_t type;
- u_int16_t length;
- u_int16_t auth_type;
- u_int16_t auth_length;
- u_int32_t key_id;
- u_int32_t key_sequence;
- u_char Nullpad[8];
- u_char digest[EIGRP_AUTH_TYPE_SHA256_LEN];
+ uint16_t type;
+ uint16_t length;
+ uint16_t auth_type;
+ uint16_t auth_length;
+ uint32_t key_id;
+ uint32_t key_sequence;
+ uint8_t Nullpad[8];
+ uint8_t digest[EIGRP_AUTH_TYPE_SHA256_LEN];
} __attribute__((packed));
struct TLV_Sequence_Type {
- u_int16_t type;
- u_int16_t length;
- u_char addr_length;
+ uint16_t type;
+ uint16_t length;
+ uint8_t addr_length;
struct in_addr *addresses;
} __attribute__((packed));
struct TLV_Next_Multicast_Sequence {
- u_int16_t type;
- u_int16_t length;
- u_int32_t multicast_sequence;
+ uint16_t type;
+ uint16_t length;
+ uint32_t multicast_sequence;
} __attribute__((packed));
struct TLV_Software_Type {
- u_int16_t type;
- u_int16_t length;
- u_char vender_major;
- u_char vender_minor;
- u_char eigrp_major;
- u_char eigrp_minor;
+ uint16_t type;
+ uint16_t length;
+ uint8_t vender_major;
+ uint8_t vender_minor;
+ uint8_t eigrp_major;
+ uint8_t eigrp_minor;
} __attribute__((packed));
struct TLV_IPv4_Internal_type {
- u_int16_t type;
- u_int16_t length;
+ uint16_t type;
+ uint16_t length;
struct in_addr forward;
/*Metrics*/
struct eigrp_metrics metric;
- u_char prefix_length;
+ uint8_t prefix_length;
unsigned char destination_part[4];
struct in_addr destination;
} __attribute__((packed));
struct TLV_IPv4_External_type {
- u_int16_t type;
- u_int16_t length;
+ uint16_t type;
+ uint16_t length;
struct in_addr next_hop;
struct in_addr originating_router;
- u_int32_t originating_as;
- u_int32_t administrative_tag;
- u_int32_t external_metric;
- u_int16_t reserved;
- u_char external_protocol;
- u_char external_flags;
+ uint32_t originating_as;
+ uint32_t administrative_tag;
+ uint32_t external_metric;
+ uint16_t reserved;
+ uint8_t external_protocol;
+ uint8_t external_flags;
/*Metrics*/
struct eigrp_metrics metric;
- u_char prefix_length;
+ uint8_t prefix_length;
unsigned char destination_part[4];
struct in_addr destination;
} __attribute__((packed));
/* EIGRP Peer Termination TLV - used for hard restart */
struct TLV_Peer_Termination_type {
- u_int16_t type;
- u_int16_t length;
- u_char unknown;
- u_int32_t neighbor_ip;
+ uint16_t type;
+ uint16_t length;
+ uint8_t unknown;
+ uint32_t neighbor_ip;
} __attribute__((packed));
/* Who executed Graceful restart */
@@ -445,15 +447,15 @@ enum GR_type { EIGRP_GR_MANUAL, EIGRP_GR_FILTER };
/* EIGRP Topology table node structure */
struct eigrp_prefix_entry {
struct list *entries, *rij;
- u_int32_t fdistance; // FD
- u_int32_t rdistance; // RD
- u_int32_t distance; // D
+ uint32_t fdistance; // FD
+ uint32_t rdistance; // RD
+ uint32_t distance; // D
struct eigrp_metrics reported_metric; // RD for sending
- u_char nt; // network type
- u_char state; // route fsm state
- u_char af; // address family
- u_char req_action; // required action
+ uint8_t nt; // network type
+ uint8_t state; // route fsm state
+ uint8_t af; // address family
+ uint8_t req_action; // required action
struct prefix *destination;
@@ -468,15 +470,15 @@ struct eigrp_prefix_entry {
/* EIGRP Topology table record structure */
struct eigrp_nexthop_entry {
struct eigrp_prefix_entry *prefix;
- u_int32_t reported_distance; // distance reported by neighbor
- u_int32_t distance; // sum of reported distance and link cost to
- // advertised neighbor
+ uint32_t reported_distance; // distance reported by neighbor
+ uint32_t distance; // sum of reported distance and link cost to
+ // advertised neighbor
struct eigrp_metrics reported_metric;
struct eigrp_metrics total_metric;
struct eigrp_neighbor *adv_router; // ip address of advertising neighbor
- u_char flags; // used for marking successor and FS
+ uint8_t flags; // used for marking successor and FS
struct eigrp_interface *ei; // pointer for case of connected entry
};
@@ -491,7 +493,7 @@ typedef enum {
/* EIGRP Finite State Machine */
struct eigrp_fsm_action_message {
- u_char packet_type; // UPDATE, QUERY, SIAQUERY, SIAREPLY
+ uint8_t packet_type; // UPDATE, QUERY, SIAQUERY, SIAREPLY
struct eigrp *eigrp; // which thread sent mesg
struct eigrp_neighbor *adv_router; // advertising neighbor
struct eigrp_nexthop_entry *entry;