diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-09-07 02:12:46 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-10-03 01:51:49 +0200 |
commit | 79b3087675c7c4cc6c0693ca205c02b76c45525a (patch) | |
tree | 8983d08fd716f937cdf8533922fc6d165bc3fadc /eigrpd/eigrp_structs.h | |
parent | Merge pull request #1259 from qlyoung/vtysh-warn-mi (diff) | |
download | frr-79b3087675c7c4cc6c0693ca205c02b76c45525a.tar.xz frr-79b3087675c7c4cc6c0693ca205c02b76c45525a.zip |
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 5bc63a7c4..71761391a 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 |