mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-31 04:36:25 +00:00
eigrpd: Add vrf_id to struct eigrp
Initial setup of adding a vrf_id to the `struct eigrp`. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
1825b8a216
commit
c371cd6bf0
@ -85,7 +85,8 @@ static int eigrpd_instance_create(enum nb_event event,
|
||||
/* NOTHING */
|
||||
break;
|
||||
case NB_EV_PREPARE:
|
||||
eigrp = eigrp_get(yang_dnode_get_string(dnode, "./asn"));
|
||||
eigrp = eigrp_get(yang_dnode_get_string(dnode, "./asn"),
|
||||
VRF_DEFAULT);
|
||||
resource->ptr = eigrp;
|
||||
break;
|
||||
case NB_EV_ABORT:
|
||||
@ -1181,7 +1182,8 @@ static int lib_interface_eigrp_instance_create(enum nb_event event,
|
||||
break;
|
||||
}
|
||||
|
||||
eigrp = eigrp_get(yang_dnode_get_string(dnode, "./asn"));
|
||||
eigrp = eigrp_get(yang_dnode_get_string(dnode, "./asn"),
|
||||
VRF_DEFAULT);
|
||||
eif = eigrp_interface_lookup(eigrp, ifp->name);
|
||||
if (eif == NULL)
|
||||
return NB_ERR_INCONSISTENCY;
|
||||
@ -1192,7 +1194,8 @@ static int lib_interface_eigrp_instance_create(enum nb_event event,
|
||||
break;
|
||||
case NB_EV_APPLY:
|
||||
ifp = nb_running_get_entry(dnode, NULL, true);
|
||||
eigrp = eigrp_get(yang_dnode_get_string(dnode, "./asn"));
|
||||
eigrp = eigrp_get(yang_dnode_get_string(dnode, "./asn"),
|
||||
VRF_DEFAULT);
|
||||
eif = eigrp_interface_lookup(eigrp, ifp->name);
|
||||
if (eif == NULL)
|
||||
return NB_ERR_INCONSISTENCY;
|
||||
|
@ -69,6 +69,8 @@ struct eigrp_metrics {
|
||||
};
|
||||
|
||||
struct eigrp {
|
||||
vrf_id_t vrf_id;
|
||||
|
||||
uint16_t AS; /* Autonomous system number */
|
||||
uint16_t vrid; /* Virtual Router ID */
|
||||
uint8_t k_values[6]; /*Array for K values configuration*/
|
||||
|
@ -64,8 +64,6 @@ static struct eigrp_master eigrp_master;
|
||||
|
||||
struct eigrp_master *eigrp_om;
|
||||
|
||||
static struct eigrp *eigrp_new(const char *);
|
||||
|
||||
extern struct zclient *zclient;
|
||||
extern struct in_addr router_id_zebra;
|
||||
|
||||
@ -136,12 +134,13 @@ void eigrp_master_init(void)
|
||||
}
|
||||
|
||||
/* Allocate new eigrp structure. */
|
||||
static struct eigrp *eigrp_new(const char *AS)
|
||||
static struct eigrp *eigrp_new(const char *AS, vrf_id_t vrf_id)
|
||||
{
|
||||
struct eigrp *eigrp = XCALLOC(MTYPE_EIGRP_TOP, sizeof(struct eigrp));
|
||||
int eigrp_socket;
|
||||
|
||||
/* init information relevant to peers */
|
||||
eigrp->vrf_id = vrf_id;
|
||||
eigrp->vrid = 0;
|
||||
eigrp->AS = atoi(AS);
|
||||
eigrp->router_id.s_addr = 0;
|
||||
@ -217,13 +216,13 @@ static struct eigrp *eigrp_new(const char *AS)
|
||||
return eigrp;
|
||||
}
|
||||
|
||||
struct eigrp *eigrp_get(const char *AS)
|
||||
struct eigrp *eigrp_get(const char *AS, vrf_id_t vrf_id)
|
||||
{
|
||||
struct eigrp *eigrp;
|
||||
|
||||
eigrp = eigrp_lookup();
|
||||
if (eigrp == NULL) {
|
||||
eigrp = eigrp_new(AS);
|
||||
eigrp = eigrp_new(AS, vrf_id);
|
||||
listnode_add(eigrp_om->eigrp, eigrp);
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ extern void eigrp_master_init(void);
|
||||
extern void eigrp_terminate(void);
|
||||
extern void eigrp_finish_final(struct eigrp *);
|
||||
extern void eigrp_finish(struct eigrp *);
|
||||
extern struct eigrp *eigrp_get(const char *);
|
||||
extern struct eigrp *eigrp_get(const char *as, vrf_id_t vrf_id);
|
||||
extern struct eigrp *eigrp_lookup(void);
|
||||
extern void eigrp_router_id_update(struct eigrp *);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user