zebra: configure static routes in any VRF

Introduce new commands to configure static routes in any VRF, by
appending the old static route commands with a new parameter
"vrf N".

A new parameter "const char *vrf_id_str" is added to the functions
zebra_static_ipv4() and static_ipv6_func() to get the configured
VRF ID.

A new member "vrf_id" is added to the "struct static_ipv4" and
"struct static_ipv6", indicating which VRF this static route is
configured in.

But till now, no interface can exist in any non-default VRF. So
these static routes in non-default VRFs are kept inactive.

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>
diff --git a/zebra/rib.h b/zebra/rib.h
index 84cd3da..dcb307e 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -173,6 +173,9 @@
   struct static_ipv4 *prev;
   struct static_ipv4 *next;
 
+  /* VRF identifier. */
+  vrf_id_t vrf_id;
+
   /* Administrative distance. */
   u_char distance;
 
@@ -205,6 +208,9 @@
   struct static_ipv6 *prev;
   struct static_ipv6 *next;
 
+  /* VRF identifier. */
+  vrf_id_t vrf_id;
+
   /* Administrative distance. */
   u_char distance;