/*Pending: need proper vrf name based lookup/(possible creation of VRF)
Imagine forward reference of a vrf by name in this interface config */
if (vrfname)
- VRF_GET_ID(vrf_id, vrfname);
+ VRF_GET_ID(vrf_id, vrfname, false);
#ifdef SUNOS_5
ifp = if_sunwzebra_get(ifname, vrf_id);
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc > 3)
- VRF_GET_ID(vrf_id, vrfname);
+ VRF_GET_ID(vrf_id, vrfname, false);
ifp = if_lookup_by_name(ifname, vrf_id);
extern const char *vrf_id_to_name(vrf_id_t vrf_id);
extern vrf_id_t vrf_name_to_id(const char *);
-#define VRF_GET_ID(V, NAME) \
+#define VRF_GET_ID(V, NAME, USE_JSON) \
do { \
struct vrf *vrf; \
if (!(vrf = vrf_lookup_by_name(NAME))) { \
+ if (USE_JSON) { \
+ vty_out(vty, "{}\n"); \
+ } else { \
+ vty_out(vty, "%% VRF %s not found\n", NAME); \
+ } \
vty_out(vty, "%% VRF %s not found\n", NAME); \
return CMD_WARNING; \
} \
if (vrf->vrf_id == VRF_UNKNOWN) { \
- vty_out(vty, "%% VRF %s not active\n", NAME); \
+ if (USE_JSON) { \
+ vty_out(vty, "{}\n"); \
+ } else { \
+ vty_out(vty, "%% VRF %s not active\n", NAME); \
+ } \
return CMD_WARNING; \
} \
(V) = vrf->vrf_id; \
interface_update_stats();
if (argc > 2)
- VRF_GET_ID(vrf_id, argv[3]->arg);
+ VRF_GET_ID(vrf_id, argv[3]->arg, false);
/* All interface print. */
vrf = vrf_lookup_by_id(vrf_id);
interface_update_stats();
- VRF_GET_ID(vrf_id, argv[idx_name]->arg);
+ VRF_GET_ID(vrf_id, argv[idx_name]->arg, false);
/* Specified interface print. */
ifp = if_lookup_by_name(argv[idx_ifname]->arg, vrf_id);
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc > 3)
- VRF_GET_ID(vrf_id, argv[4]->arg);
+ VRF_GET_ID(vrf_id, argv[4]->arg, false);
if_show_description(vty, vrf_id);
rid.family = AF_INET;
if (argc > 2)
- VRF_GET_ID(vrf_id, argv[idx_name]->arg);
+ VRF_GET_ID(vrf_id, argv[idx_name]->arg, false);
router_id_set(&rid, vrf_id);
rid.family = AF_INET;
if (argc > 3)
- VRF_GET_ID(vrf_id, argv[idx_name]->arg);
+ VRF_GET_ID(vrf_id, argv[idx_name]->arg, false);
router_id_set(&rid, vrf_id);
vrf_id_t vrf_id = VRF_DEFAULT;
if (vrf_name)
- VRF_GET_ID(vrf_id, vrf_name);
+ VRF_GET_ID(vrf_id, vrf_name, !!json);
zvrf = zebra_vrf_lookup_by_id(vrf_id);
t = zebra_ns_find_table(zvrf->zns, table, afi);
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc == 5)
- VRF_GET_ID(vrf_id, argv[idx_vrf]->arg);
+ VRF_GET_ID(vrf_id, argv[idx_vrf]->arg, false);
zebra_print_rnh_table(vrf_id, AF_INET, vty, RNH_NEXTHOP_TYPE);
return CMD_SUCCESS;
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc == 5)
- VRF_GET_ID(vrf_id, argv[idx_vrf]->arg);
+ VRF_GET_ID(vrf_id, argv[idx_vrf]->arg, false);
zebra_print_rnh_table(vrf_id, AF_INET6, vty, RNH_NEXTHOP_TYPE);
return CMD_SUCCESS;
vrf_id_t vrf_id = VRF_DEFAULT;
if (vrf_name)
- VRF_GET_ID(vrf_id, vrf_name);
+ VRF_GET_ID(vrf_id, vrf_name, !!json);
vrf = vrf_lookup_by_id(vrf_id);
do_show_ip_route(vty, vrf->name, afi, SAFI_UNICAST, !!fib,
!!json, tag, prefix_str ? prefix : NULL,
vrf_id_t vrf_id = VRF_DEFAULT;
if (vrf_name)
- VRF_GET_ID(vrf_id, vrf_name);
+ VRF_GET_ID(vrf_id, vrf_name, false);
table = zebra_vrf_table(afi, SAFI_UNICAST, vrf_id);
if (!table)
vrf_id_t vrf_id = VRF_DEFAULT;
if (vrf_name)
- VRF_GET_ID(vrf_id, vrf_name);
+ VRF_GET_ID(vrf_id, vrf_name, false);
table = zebra_vrf_table(afi, SAFI_UNICAST, vrf_id);
if (!table)
vrf_id_t vrf_id = VRF_DEFAULT;
if (argc == 5)
- VRF_GET_ID(vrf_id, argv[4]->arg);
+ VRF_GET_ID(vrf_id, argv[4]->arg, false);
table = zebra_vrf_table(AFI_IP6, SAFI_MULTICAST, vrf_id);
if (!table)