]> git.proxmox.com Git - mirror_frr.git/blobdiff - eigrpd/eigrp_structs.h
*: reindent
[mirror_frr.git] / eigrpd / eigrp_structs.h
index 4d307005c955fb54ce2862a1ad08e6003acfb0e0..6b3a14abc5664671d8a42f3da83d347f1d9d966f 100644 (file)
 #include "eigrpd/eigrp_macros.h"
 
 /* EIGRP master for system wide configuration and variables. */
-struct eigrp_master
-{
-  /* EIGRP instance. */
-  struct list *eigrp;
+struct eigrp_master {
+       /* EIGRP instance. */
+       struct list *eigrp;
 
-  /* EIGRP thread master. */
-  struct thread_master *master;
+       /* EIGRP thread master. */
+       struct thread_master *master;
 
-  /* Zebra interface list. */
-  struct list *iflist;
+       /* Zebra interface list. */
+       struct list *iflist;
 
-  /* EIGRP start time. */
-  time_t start_time;
+       /* EIGRP start time. */
+       time_t start_time;
 
-  /* Various EIGRP global configuration. */
-  u_char options;
+       /* Various EIGRP global configuration. */
+       u_char options;
 
 #define EIGRP_MASTER_SHUTDOWN (1 << 0) /* deferred-shutdown */
 };
 
-struct eigrp_metrics
-{
-  u_int32_t delay;
-  u_int32_t bandwith;
-  unsigned char mtu[3];
-  u_char hop_count;
-  u_char reliability;
-  u_char load;
-  u_char tag;
-  u_char flags;
+struct eigrp_metrics {
+       u_int32_t delay;
+       u_int32_t bandwith;
+       unsigned char mtu[3];
+       u_char hop_count;
+       u_char reliability;
+       u_char load;
+       u_char tag;
+       u_char 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*/
+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*/
 
-  /*Name of this EIGRP instance*/
-  char *name;
+       /*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. */
+       /* EIGRP Router ID. */
+       u_int32_t router_id;    /* Configured automatically. */
+       u_int32_t router_id_static; /* Configured manually. */
 
-  struct list *eiflist; /* eigrp interfaces */
-  u_char passive_interface_default; /* passive-interface default */
+       struct list *eiflist;             /* eigrp interfaces */
+       u_char passive_interface_default; /* passive-interface default */
 
-  unsigned int fd;
-  unsigned int maxsndbuflen;
+       unsigned int fd;
+       unsigned int maxsndbuflen;
 
-  u_int32_t sequence_number; /*Global EIGRP sequence number*/
+       u_int32_t sequence_number; /*Global EIGRP sequence number*/
 
-  struct stream *ibuf;
-  struct list *oi_write_q;
+       struct stream *ibuf;
+       struct list *oi_write_q;
 
-  /*Threads*/
-  struct thread *t_write;
-  struct thread *t_read;
-  struct thread *t_distribute; /* timer for distribute list */
+       /*Threads*/
+       struct thread *t_write;
+       struct thread *t_read;
+       struct thread *t_distribute; /* timer for distribute list */
 
-  struct route_table *networks; /* EIGRP config networks. */
+       struct route_table *networks; /* EIGRP config networks. */
 
-  struct list *topology_table;
+       struct list *topology_table;
 
-  uint64_t serno; /* Global serial number counter for topology entry changes*/
-  uint64_t serno_last_update; /* Highest serial number of information send by last update*/
-  struct list *topology_changes_internalIPV4;
-  struct list *topology_changes_externalIPV4;
+       uint64_t serno; /* Global serial number counter for topology entry
+                          changes*/
+       uint64_t
+               serno_last_update; /* Highest serial number of information send
+                                     by last update*/
+       struct list *topology_changes_internalIPV4;
+       struct list *topology_changes_externalIPV4;
 
-  /*Neighbor self*/
-  struct eigrp_neighbor *neighbor_self;
+       /*Neighbor self*/
+       struct eigrp_neighbor *neighbor_self;
 
-  /*Configured metric for redistributed routes*/
-  struct eigrp_metrics dmetric[ZEBRA_ROUTE_MAX + 1];
-  int redistribute;           /* Num of redistributed protocols. */
+       /*Configured metric for redistributed routes*/
+       struct eigrp_metrics dmetric[ZEBRA_ROUTE_MAX + 1];
+       int redistribute; /* Num of redistributed protocols. */
 
-  /* Access-list. */
-  struct access_list *list[EIGRP_FILTER_MAX];
-  /* Prefix-list. */
-  struct prefix_list *prefix[EIGRP_FILTER_MAX];
-  /* Route-map. */
-  struct route_map *routemap[EIGRP_FILTER_MAX];
+       /* Access-list. */
+       struct access_list *list[EIGRP_FILTER_MAX];
+       /* Prefix-list. */
+       struct prefix_list *prefix[EIGRP_FILTER_MAX];
+       /* Route-map. */
+       struct route_map *routemap[EIGRP_FILTER_MAX];
 
-  /* For redistribute route map. */
-    struct
-    {
-      char *name;
-      struct route_map *map;
-      int metric_config;
-      u_int32_t metric;
-    } route_map[ZEBRA_ROUTE_MAX];
+       /* For redistribute route map. */
+       struct {
+               char *name;
+               struct route_map *map;
+               int metric_config;
+               u_int32_t metric;
+       } route_map[ZEBRA_ROUTE_MAX];
 
-  QOBJ_FIELDS
+       QOBJ_FIELDS
 };
 DECLARE_QOBJ_TYPE(eigrp)
 //------------------------------------------------------------------------------------------------------------------------------------------
 
 /*EIGRP interface structure*/
-struct eigrp_interface
-{
-  /* This interface's parent eigrp instance. */
-  struct eigrp *eigrp;
-
-  /* Interface data from zebra. */
-  struct interface *ifp;
-
-  /* Packet send buffer. */
-  struct eigrp_fifo *obuf; /* Output queue */
-
-  /* To which multicast groups do we currently belong? */
-
-  /* Configured varables. */
-  struct eigrp_if_params *params;
-
-  u_char multicast_memberships;
-
-  /* EIGRP Network Type. */
-  u_char type;
-
-  struct prefix *address; /* Interface prefix */
-  struct connected *connected; /* Pointer to connected */
-
-  /* Neighbor information. */
-  struct list *nbrs; /* EIGRP Neighbor List */
-
-  /* Threads. */
-  struct thread *t_hello; /* timer */
-  struct thread *t_distribute; /* timer for distribute list */
-
-  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 */
-
-  /* Access-list. */
-  struct access_list *list[EIGRP_FILTER_MAX];
-  /* Prefix-list. */
-  struct prefix_list *prefix[EIGRP_FILTER_MAX];
-  /* Route-map. */
-  struct route_map *routemap[EIGRP_FILTER_MAX];
+struct eigrp_interface {
+       /* This interface's parent eigrp instance. */
+       struct eigrp *eigrp;
+
+       /* Interface data from zebra. */
+       struct interface *ifp;
+
+       /* Packet send buffer. */
+       struct eigrp_fifo *obuf; /* Output queue */
+
+       /* To which multicast groups do we currently belong? */
+
+       /* Configured varables. */
+       struct eigrp_if_params *params;
+
+       u_char multicast_memberships;
+
+       /* EIGRP Network Type. */
+       u_char type;
+
+       struct prefix *address;      /* Interface prefix */
+       struct connected *connected; /* Pointer to connected */
+
+       /* Neighbor information. */
+       struct list *nbrs; /* EIGRP Neighbor List */
+
+       /* Threads. */
+       struct thread *t_hello;      /* timer */
+       struct thread *t_distribute; /* timer for distribute list */
+
+       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 */
+
+       /* Access-list. */
+       struct access_list *list[EIGRP_FILTER_MAX];
+       /* Prefix-list. */
+       struct prefix_list *prefix[EIGRP_FILTER_MAX];
+       /* Route-map. */
+       struct route_map *routemap[EIGRP_FILTER_MAX];
 };
 
-struct eigrp_if_params
-{
-  DECLARE_IF_PARAM (u_char, passive_interface); /* EIGRP Interface is passive: no sending or receiving (no need to join multicast groups) */
-  DECLARE_IF_PARAM (u_int32_t, v_hello); /* Hello Interval */
-  DECLARE_IF_PARAM (u_int16_t, v_wait); /* Router Hold Time Interval */
-  DECLARE_IF_PARAM (u_char, type); /* type of interface */
-  DECLARE_IF_PARAM (u_int32_t, bandwidth);
-  DECLARE_IF_PARAM (u_int32_t, delay);
-  DECLARE_IF_PARAM (u_char, reliability);
-  DECLARE_IF_PARAM (u_char, load);
-
-  DECLARE_IF_PARAM (char *, auth_keychain );    /* Associated keychain with interface*/
-  DECLARE_IF_PARAM (int, auth_type);         /* EIGRP authentication type */
+struct eigrp_if_params {
+       DECLARE_IF_PARAM(u_char, passive_interface); /* EIGRP Interface is
+                                                       passive: no sending or
+                                                       receiving (no need to
+                                                       join multicast groups)
+                                                       */
+       DECLARE_IF_PARAM(u_int32_t, v_hello);   /* Hello Interval */
+       DECLARE_IF_PARAM(u_int16_t, v_wait); /* Router Hold Time Interval */
+       DECLARE_IF_PARAM(u_char, type);      /* type of interface */
+       DECLARE_IF_PARAM(u_int32_t, bandwidth);
+       DECLARE_IF_PARAM(u_int32_t, delay);
+       DECLARE_IF_PARAM(u_char, reliability);
+       DECLARE_IF_PARAM(u_char, load);
+
+       DECLARE_IF_PARAM(char *,
+                        auth_keychain); /* Associated keychain with interface*/
+       DECLARE_IF_PARAM(int, auth_type); /* EIGRP authentication type */
 };
 
-enum
-{
-  MEMBER_ALLROUTERS = 0, MEMBER_MAX,
+enum { MEMBER_ALLROUTERS = 0,
+       MEMBER_MAX,
 };
 
-struct eigrp_if_info
-{
-  struct eigrp_if_params *def_params;
-  struct route_table *params;
-  struct route_table *eifs;
-  unsigned int membership_counts[MEMBER_MAX]; /* multicast group refcnts */
+struct eigrp_if_info {
+       struct eigrp_if_params *def_params;
+       struct route_table *params;
+       struct route_table *eifs;
+       unsigned int
+               membership_counts[MEMBER_MAX]; /* multicast group refcnts */
 };
 
 //------------------------------------------------------------------------------------------------------------------------------------------
@@ -232,109 +233,105 @@ struct eigrp_if_info
  * when packet consists of multiple packet
  * chunks because of many route TLV
  * (all won't fit into one packet) */
-enum Packet_part_type
-{
+enum Packet_part_type {
        EIGRP_PACKET_PART_NA,
        EIGRP_PACKET_PART_FIRST,
        EIGRP_PACKET_PART_LAST
 };
 
 /* Neighbor Data Structure */
-struct eigrp_neighbor
-{
-  /* This neighbor's parent eigrp interface. */
-  struct eigrp_interface *ei;
+struct eigrp_neighbor {
+       /* This neighbor's parent eigrp interface. */
+       struct eigrp_interface *ei;
 
-  /* EIGRP neighbor Information */
-  u_char state; /* neigbor status. */
+       /* EIGRP neighbor Information */
+       u_char state; /* neigbor status. */
 
-  u_int32_t recv_sequence_number; /* Last received sequence Number. */
-  u_int32_t init_sequence_number;
+       u_int32_t recv_sequence_number; /* Last received sequence Number. */
+       u_int32_t init_sequence_number;
 
-  /*If packet is unacknowledged, we try to send it again 16 times*/
-  u_char retrans_counter;
+       /*If packet is unacknowledged, we try to send it again 16 times*/
+       u_char retrans_counter;
 
-  struct in_addr src; /* Neighbor Src address. */
+       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
+       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
 
-  u_char K1;
-  u_char K2;
-  u_char K3;
-  u_char K4;
-  u_char K5;
-  u_char K6;
+       u_char K1;
+       u_char K2;
+       u_char K3;
+       u_char K4;
+       u_char K5;
+       u_char K6;
 
-  /* Timer values. */
-  u_int16_t v_holddown;
+       /* Timer values. */
+       u_int16_t v_holddown;
 
-  /* Threads. */
-  struct thread *t_holddown;
-  struct thread *t_nbr_send_gr; /* thread for sending multiple GR packet chunks */
+       /* Threads. */
+       struct thread *t_holddown;
+       struct thread *t_nbr_send_gr; /* thread for sending multiple GR packet
+                                        chunks */
 
-  struct eigrp_fifo *retrans_queue;
-  struct eigrp_fifo *multicast_queue;
+       struct eigrp_fifo *retrans_queue;
+       struct eigrp_fifo *multicast_queue;
 
-  u_int32_t crypt_seqnum;           /* Cryptographic Sequence Number. */
+       u_int32_t crypt_seqnum; /* Cryptographic Sequence Number. */
 
-  /* prefixes not received from neighbor during Graceful restart */
-  struct list *nbr_gr_prefixes;
-  /* prefixes not yet send to neighbor during Graceful restart */
-  struct list *nbr_gr_prefixes_send;
-  /* if packet is first or last during Graceful restart */
-  enum Packet_part_type nbr_gr_packet_type;
+       /* prefixes not received from neighbor during Graceful restart */
+       struct list *nbr_gr_prefixes;
+       /* prefixes not yet send to neighbor during Graceful restart */
+       struct list *nbr_gr_prefixes_send;
+       /* if packet is first or last during Graceful restart */
+       enum Packet_part_type nbr_gr_packet_type;
 };
 
 //---------------------------------------------------------------------------------------------------------------------------------------------
 
 
-struct eigrp_packet
-{
-  struct eigrp_packet *next;
-  struct eigrp_packet *previous;
+struct eigrp_packet {
+       struct eigrp_packet *next;
+       struct eigrp_packet *previous;
 
-  /* Pointer to data stream. */
-  struct stream *s;
+       /* Pointer to data stream. */
+       struct stream *s;
 
-  /* IP destination address. */
-  struct in_addr dst;
+       /* IP destination address. */
+       struct in_addr dst;
 
-  /*Packet retransmission thread*/
-  struct thread *t_retrans_timer;
+       /*Packet retransmission thread*/
+       struct thread *t_retrans_timer;
 
-  /*Packet retransmission counter*/
-  u_char retrans_counter;
+       /*Packet retransmission counter*/
+       u_char retrans_counter;
 
-  u_int32_t sequence_number;
+       u_int32_t sequence_number;
 
-  /* EIGRP packet length. */
-  u_int16_t length;
+       /* EIGRP packet length. */
+       u_int16_t length;
 };
 
-struct eigrp_fifo
-{
-  struct eigrp_packet *head;
-  struct eigrp_packet *tail;
+struct eigrp_fifo {
+       struct eigrp_packet *head;
+       struct eigrp_packet *tail;
 
-  unsigned long count;
+       unsigned long count;
 };
 
-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;
-  char *tlv[0];
+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;
+       char *tlv[0];
 
-}__attribute__((packed));
+} __attribute__((packed));
 
 
 /**
@@ -346,187 +343,174 @@ struct eigrp_header
  *      |     |     |            |
  *      +-----+------------------+
  */
-struct eigrp_tlv_hdr_type
-{
-  u_int16_t type;
-  u_int16_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;
-}__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];
-
-}__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];
-
-}__attribute__((packed));
-
-struct TLV_Sequence_Type
-{
-  u_int16_t type;
-  u_int16_t length;
-  u_char 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;
-}__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;
-}__attribute__((packed));
-
-struct TLV_IPv4_Internal_type
-{
-  u_int16_t type;
-  u_int16_t length;
-  struct in_addr forward;
-
-  /*Metrics*/
-  struct eigrp_metrics metric;
-
-  u_char 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;
-  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;
-
-  /*Metrics*/
-  struct eigrp_metrics metric;
-
-  u_char prefix_length;
-  unsigned char destination_part[4];
-  struct in_addr destination;
-}__attribute__((packed));
+struct eigrp_tlv_hdr_type {
+       u_int16_t type;
+       u_int16_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;
+} __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];
+
+} __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];
+
+} __attribute__((packed));
+
+struct TLV_Sequence_Type {
+       u_int16_t type;
+       u_int16_t length;
+       u_char 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;
+} __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;
+} __attribute__((packed));
+
+struct TLV_IPv4_Internal_type {
+       u_int16_t type;
+       u_int16_t length;
+       struct in_addr forward;
+
+       /*Metrics*/
+       struct eigrp_metrics metric;
+
+       u_char 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;
+       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;
+
+       /*Metrics*/
+       struct eigrp_metrics metric;
+
+       u_char 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;
+struct TLV_Peer_Termination_type {
+       u_int16_t type;
+       u_int16_t length;
+       u_char unknown;
+       u_int32_t neighbor_ip;
 } __attribute__((packed));
 
 /* Who executed Graceful restart */
-enum GR_type
-{
-       EIGRP_GR_MANUAL,
-       EIGRP_GR_FILTER
-};
+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
-  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
-
-  struct prefix_ipv4 *destination_ipv4;                // pointer to struct with ipv4 address
-  struct prefix_ipv6 *destination_ipv6;                // pointer to struct with ipv6 address
-
-  //If network type is REMOTE_EXTERNAL, pointer will have reference to its external TLV
-  struct TLV_IPv4_External_type *extTLV;
-
-  uint64_t serno; /*Serial number for this entry. Increased with each change of entry*/
+struct eigrp_prefix_entry {
+       struct list *entries, *rij;
+       u_int32_t fdistance;                  // FD
+       u_int32_t rdistance;                  // RD
+       u_int32_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
+
+       struct prefix_ipv4
+               *destination_ipv4; // pointer to struct with ipv4 address
+       struct prefix_ipv6
+               *destination_ipv6; // pointer to struct with ipv6 address
+
+       // If network type is REMOTE_EXTERNAL, pointer will have reference to
+       // its external TLV
+       struct TLV_IPv4_External_type *extTLV;
+
+       uint64_t serno; /*Serial number for this entry. Increased with each
+                          change of entry*/
 };
 
 /* EIGRP Topology table record structure */
-struct eigrp_neighbor_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
-
-  struct eigrp_metrics reported_metric;
-  struct eigrp_metrics total_metric;
+struct eigrp_neighbor_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
 
-  struct eigrp_neighbor *adv_router;           //ip address of advertising neighbor
-  u_char flags;                                                        //used for marking successor and FS
+       struct eigrp_metrics reported_metric;
+       struct eigrp_metrics total_metric;
 
-  struct eigrp_interface *ei;                          //pointer for case of connected entry
+       struct eigrp_neighbor *adv_router; // ip address of advertising neighbor
+       u_char flags;                      // used for marking successor and FS
 
+       struct eigrp_interface *ei; // pointer for case of connected entry
 };
 
 //---------------------------------------------------------------------------------------------------------------------------------------------
 
 /* EIGRP Finite State Machine */
 
-struct eigrp_fsm_action_message
-{
-  u_char packet_type;                                  //UPDATE, QUERY, SIAQUERY, SIAREPLY
-  struct eigrp *eigrp;                                 // which thread sent mesg
-  struct eigrp_neighbor *adv_router;   //advertising neighbor
-  struct eigrp_neighbor_entry *entry;
-  struct eigrp_prefix_entry *prefix;
-  int data_type; // internal or external tlv type
-  union{
-    struct TLV_IPv4_External_type *ipv4_ext_data;
-    struct TLV_IPv4_Internal_type *ipv4_int_type;
-  }data;
+struct eigrp_fsm_action_message {
+       u_char packet_type;                // UPDATE, QUERY, SIAQUERY, SIAREPLY
+       struct eigrp *eigrp;               // which thread sent mesg
+       struct eigrp_neighbor *adv_router; // advertising neighbor
+       struct eigrp_neighbor_entry *entry;
+       struct eigrp_prefix_entry *prefix;
+       int data_type; // internal or external tlv type
+       union {
+               struct TLV_IPv4_External_type *ipv4_ext_data;
+               struct TLV_IPv4_Internal_type *ipv4_int_type;
+       } data;
 };
 
 #endif /* _ZEBRA_EIGRP_STRUCTURES_H_ */