diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-09-06 20:12:46 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-10-02 19:51:49 -0400 | 
| commit | 79b3087675c7c4cc6c0693ca205c02b76c45525a (patch) | |
| tree | 8983d08fd716f937cdf8533922fc6d165bc3fadc /eigrpd/eigrp_structs.h | |
| parent | 98e6d77f93985349c2cca965c6417bdef8601070 (diff) | |
eigrpd: Start fixing eigrp_interface
The EIGRP interface handling code created 2 levels
of interface information, the ei( created per *connected*
address?????) and the ifp->info pointer.
Start the combination of pushing these together and
cleaning up the weirdness that is these two data
structures.
This commit probably breaks eigrp's handling of
interfaces.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'eigrpd/eigrp_structs.h')
| -rw-r--r-- | eigrpd/eigrp_structs.h | 64 | 
1 files changed, 30 insertions, 34 deletions
diff --git a/eigrpd/eigrp_structs.h b/eigrpd/eigrp_structs.h index 5bc63a7c47..71761391ac 100644 --- a/eigrpd/eigrp_structs.h +++ b/eigrpd/eigrp_structs.h @@ -135,10 +135,39 @@ struct eigrp {  	QOBJ_FIELDS  };  DECLARE_QOBJ_TYPE(eigrp) -//------------------------------------------------------------------------------------------------------------------------------------------ + +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, +};  /*EIGRP interface structure*/  struct eigrp_interface { +	struct eigrp_if_params *def_params; +	struct route_table *eparams; +	struct route_table *eifs; + +	/*multicast group refcnts */ +	unsigned int membership_counts[MEMBER_MAX]; +	  	/* This interface's parent eigrp instance. */  	struct eigrp *eigrp; @@ -196,39 +225,6 @@ struct eigrp_interface {  	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 */ -}; - -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 */ -}; - -//------------------------------------------------------------------------------------------------------------------------------------------ -  /* Determines if it is first or last packet   * when packet consists of multiple packet   * chunks because of many route TLV  | 
