summaryrefslogtreecommitdiff
path: root/zebra/main.c
diff options
context:
space:
mode:
authorFeng Lu <lu.feng@6wind.com>2015-05-22 11:40:07 +0200
committerVipin Kumar <vipin@cumulusnetworks.com>2015-10-30 00:19:15 -0700
commitc6ffe64543f9a5b8d26ce9274911882dda07065b (patch)
tree9c88d7e9d199609a0131519a01fa26a6212c1201 /zebra/main.c
parent8f527c5e7e6888a7fced25928ea22899259ab49f (diff)
zebra: maintain the router-id per VRF
A router may need different identifier among the VRFs. So move the maintenance of router-id per VRF. * rib.h: Move the previous global variables in router-id.c into the "struct zebra_vrf": - struct list _rid_all_sorted_list/*rid_all_sorted_list - struct list _rid_lo_sorted_list/*rid_lo_sorted_list - struct prefix rid_user_assigned * router-id.c/router-id.h: A new parameter "vrf_id" is added to all the router-id APIs. Their operations are done only within the specified VRF. A new command "router-id A.B.C.D vrf N" is added to allow manual router-id for any VRF. The old router_id_init() function is splitted into two: - router_id_cmd_init(): it only installs the commands - router_id_init(): this new one initializes the variables for a specified VRF * zebra_rib.c: Add new functions zebra_vrf_get/lookup() called from router-id.c. * main.c: Replace router_id_init() with router_id_cmd_init() and call the new router_id_init() in zebra_vrf_new(). Signed-off-by: Feng Lu <lu.feng@6wind.com> Reviewed-by: Alain Ritoux <alain.ritoux@6wind.com> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Acked-by: Vincent JARDIN <vincent.jardin@6wind.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> Conflicts: zebra/rib.h Conflicts: zebra/rib.h zebra/router-id.c zebra/zserv.h
Diffstat (limited to 'zebra/main.c')
-rw-r--r--zebra/main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/zebra/main.c b/zebra/main.c
index 92a0c0b31b..95a0e438e8 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -224,6 +224,7 @@ zebra_vrf_new (vrf_id_t vrf_id, void **info)
{
zvrf = zebra_vrf_alloc (vrf_id);
*info = (void *)zvrf;
+ router_id_init (zvrf);
}
return 0;
@@ -360,7 +361,7 @@ main (int argc, char **argv)
rib_init ();
zebra_if_init ();
zebra_debug_init ();
- router_id_init();
+ router_id_cmd_init ();
zebra_vty_init ();
access_list_init ();
prefix_list_init ();