summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zebra/Makefile.am3
-rw-r--r--zebra/interface.c122
-rw-r--r--zebra/irdp_interface.c97
-rw-r--r--zebra/main.c1
-rw-r--r--zebra/rtadv.c153
-rw-r--r--zebra/test_main.c6
-rw-r--r--zebra/zebra_ptm.c7
-rw-r--r--zebra/zebra_routemap.c70
8 files changed, 164 insertions, 295 deletions
diff --git a/zebra/Makefile.am b/zebra/Makefile.am
index e22dea0998..52766f37ba 100644
--- a/zebra/Makefile.am
+++ b/zebra/Makefile.am
@@ -2,7 +2,8 @@ include ../common.am
## Process this file with automake to produce Makefile.in.
-AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
+AM_CPPFLAGS = -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib \
+ -DVTY_DEPRECATE_INDEX
DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\"
INSTALL_SDATA=@INSTALL@ -m 600
diff --git a/zebra/interface.c b/zebra/interface.c
index 9be97e2214..6b575f3c83 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -1233,13 +1233,12 @@ DEFUN_NOSH (zebra_interface,
"Interface's name\n")
{
int ret;
- struct interface *ifp;
-
+
/* Call lib interface() */
if ((ret = interface_cmd.func (self, vty, argc, argv)) != CMD_SUCCESS)
return ret;
- ifp = vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
if (ifp->ifindex == IFINDEX_INTERNAL)
/* Is this really necessary? Shouldn't status be initialized to 0
@@ -1286,14 +1285,13 @@ DEFUN_NOSH (zebra_vrf,
"Select a VRF to configure\n"
"VRF's name\n")
{
+ // VTY_DECLVAR_CONTEXT (vrf, vrfp);
int ret;
/* Call lib vrf() */
if ((ret = vrf_cmd.func (self, vty, argc, argv)) != CMD_SUCCESS)
return ret;
- // vrfp = vty->index;
-
return ret;
}
@@ -1518,11 +1516,10 @@ DEFUN (multicast,
"multicast",
"Set multicast flag to interface\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int ret;
- struct interface *ifp;
struct zebra_if *if_data;
- ifp = (struct interface *) vty->index;
if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
{
ret = if_set_flags (ifp, IFF_MULTICAST);
@@ -1545,11 +1542,10 @@ DEFUN (no_multicast,
NO_STR
"Unset multicast flag to interface\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int ret;
- struct interface *ifp;
struct zebra_if *if_data;
- ifp = (struct interface *) vty->index;
if (CHECK_FLAG (ifp->status, ZEBRA_INTERFACE_ACTIVE))
{
ret = if_unset_flags (ifp, IFF_MULTICAST);
@@ -1571,10 +1567,9 @@ DEFUN (linkdetect,
"link-detect",
"Enable link detection on interface\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int if_was_operative;
-
- ifp = (struct interface *) vty->index;
+
if_was_operative = if_is_no_ptm_operative(ifp);
SET_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION);
@@ -1594,10 +1589,9 @@ DEFUN (no_linkdetect,
NO_STR
"Disable link detection on interface\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int if_was_operative;
- ifp = (struct interface *) vty->index;
if_was_operative = if_is_no_ptm_operative(ifp);
UNSET_FLAG(ifp->status, ZEBRA_INTERFACE_LINKDETECTION);
@@ -1614,11 +1608,10 @@ DEFUN (shutdown_if,
"shutdown",
"Shutdown the selected interface\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int ret;
- struct interface *ifp;
struct zebra_if *if_data;
- ifp = (struct interface *) vty->index;
if (ifp->ifindex != IFINDEX_INTERNAL)
{
ret = if_unset_flags (ifp, IFF_UP);
@@ -1641,12 +1634,10 @@ DEFUN (no_shutdown_if,
NO_STR
"Shutdown the selected interface\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int ret;
- struct interface *ifp;
struct zebra_if *if_data;
- ifp = (struct interface *) vty->index;
-
if (ifp->ifindex != IFINDEX_INTERNAL)
{
ret = if_set_flags (ifp, IFF_UP | IFF_RUNNING);
@@ -1675,10 +1666,9 @@ DEFUN (bandwidth_if,
"Set bandwidth informational parameter\n"
"Bandwidth in megabits\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
unsigned int bandwidth;
-
- ifp = (struct interface *) vty->index;
+
bandwidth = strtol(argv[0], NULL, 10);
/* bandwidth range is <1-100000> */
@@ -1703,9 +1693,7 @@ DEFUN (no_bandwidth_if,
NO_STR
"Set bandwidth informational parameter\n")
{
- struct interface *ifp;
-
- ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
ifp->bandwidth = 0;
@@ -1779,6 +1767,7 @@ DEFUN (link_params,
"link-params",
LINK_PARAMS_STR)
{
+ /* vty->qobj_index stays the same @ interface pointer */
vty->node = LINK_PARAMS_NODE;
return CMD_SUCCESS;
@@ -1790,7 +1779,7 @@ DEFUN (link_params_enable,
"enable",
"Activate link parameters on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* This command could be issue at startup, when activate MPLS TE */
/* on a new interface or after a ON / OFF / ON toggle */
@@ -1819,7 +1808,7 @@ DEFUN (no_link_params_enable,
NO_STR
"Disable link parameters on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
zlog_debug ("MPLS-TE: disable TE link parameters on interface %s", ifp->name);
@@ -1839,7 +1828,7 @@ DEFUN (link_params_metric,
"Link metric for MPLS-TE purpose\n"
"Metric value in decimal\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
u_int32_t metric;
@@ -1855,9 +1844,9 @@ DEFUN (no_link_params_metric,
no_link_params_metric_cmd,
"no metric",
NO_STR
- "Disbale Link Metric on this interface\n")
+ "Disable Link Metric on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset TE Metric */
link_param_cmd_unset(ifp, LP_TE);
@@ -1871,7 +1860,7 @@ DEFUN (link_params_maxbw,
"Maximum bandwidth that can be used\n"
"Bytes/second (IEEE floating point format)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
float bw;
@@ -1915,7 +1904,7 @@ DEFUN (link_params_max_rsv_bw,
"Maximum bandwidth that may be reserved\n"
"Bytes/second (IEEE floating point format)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
float bw;
@@ -1948,7 +1937,7 @@ DEFUN (link_params_unrsv_bw,
"Priority\n"
"Bytes/second (IEEE floating point format)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
int priority;
float bw;
@@ -1989,7 +1978,7 @@ DEFUN (link_params_admin_grp,
"Administrative group membership\n"
"32-bit Hexadecimal value (e.g. 0xa1)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
unsigned long value;
@@ -2010,9 +1999,9 @@ DEFUN (no_link_params_admin_grp,
no_link_params_admin_grp_cmd,
"no admin-grp",
NO_STR
- "Disbale Administrative group membership on this interface\n")
+ "Disable Administrative group membership on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset Admin Group */
link_param_cmd_unset(ifp, LP_ADM_GRP);
@@ -2029,8 +2018,7 @@ DEFUN (link_params_inter_as,
"Remote AS number\n"
"AS number in the range <1-4294967295>\n")
{
-
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
struct in_addr addr;
u_int32_t as;
@@ -2066,8 +2054,7 @@ DEFUN (no_link_params_inter_as,
NO_STR
"Remove Neighbor IP address and AS number for Inter-AS TE\n")
{
-
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
/* Reset Remote IP and AS neighbor */
@@ -2089,8 +2076,7 @@ DEFUN (link_params_delay,
"Unidirectional Average Link Delay\n"
"Average delay in micro-second as decimal (0...16777215)\n")
{
-
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
u_int32_t delay = 0, low = 0, high = 0;
u_int8_t update = 0;
@@ -2180,9 +2166,9 @@ DEFUN (no_link_params_delay,
no_link_params_delay_cmd,
"no delay",
NO_STR
- "Disbale Unidirectional Average, Min & Max Link Delay on this interface\n")
+ "Disable Unidirectional Average, Min & Max Link Delay on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
/* Unset Delays */
@@ -2205,7 +2191,7 @@ DEFUN (link_params_delay_var,
"Unidirectional Link Delay Variation\n"
"delay variation in micro-second as decimal (0...16777215)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
u_int32_t value;
@@ -2221,9 +2207,9 @@ DEFUN (no_link_params_delay_var,
no_link_params_delay_var_cmd,
"no delay-variation",
NO_STR
- "Disbale Unidirectional Delay Variation on this interface\n")
+ "Disable Unidirectional Delay Variation on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset Delay Variation */
link_param_cmd_unset(ifp, LP_DELAY_VAR);
@@ -2237,7 +2223,7 @@ DEFUN (link_params_pkt_loss,
"Unidirectional Link Packet Loss\n"
"percentage of total traffic by 0.000003% step and less than 50.331642%\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
float fval;
@@ -2261,9 +2247,9 @@ DEFUN (no_link_params_pkt_loss,
no_link_params_pkt_loss_cmd,
"no packet-loss",
NO_STR
- "Disbale Unidirectional Link Packet Loss on this interface\n")
+ "Disable Unidirectional Link Packet Loss on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset Packet Loss */
link_param_cmd_unset(ifp, LP_PKT_LOSS);
@@ -2277,7 +2263,7 @@ DEFUN (link_params_res_bw,
"Unidirectional Residual Bandwidth\n"
"Bytes/second (IEEE floating point format)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
float bw;
@@ -2307,9 +2293,9 @@ DEFUN (no_link_params_res_bw,
no_link_params_res_bw_cmd,
"no res-bw",
NO_STR
- "Disbale Unidirectional Residual Bandwidth on this interface\n")
+ "Disable Unidirectional Residual Bandwidth on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset Residual Bandwidth */
link_param_cmd_unset(ifp, LP_RES_BW);
@@ -2323,7 +2309,7 @@ DEFUN (link_params_ava_bw,
"Unidirectional Available Bandwidth\n"
"Bytes/second (IEEE floating point format)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
float bw;
@@ -2353,9 +2339,9 @@ DEFUN (no_link_params_ava_bw,
no_link_params_ava_bw_cmd,
"no ava-bw",
NO_STR
- "Disbale Unidirectional Available Bandwidth on this interface\n")
+ "Disable Unidirectional Available Bandwidth on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset Available Bandwidth */
link_param_cmd_unset(ifp, LP_AVA_BW);
@@ -2369,7 +2355,7 @@ DEFUN (link_params_use_bw,
"Unidirectional Utilised Bandwidth\n"
"Bytes/second (IEEE floating point format)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct if_link_params *iflp = if_link_params_get (ifp);
float bw;
@@ -2399,9 +2385,9 @@ DEFUN (no_link_params_use_bw,
no_link_params_use_bw_cmd,
"no use-bw",
NO_STR
- "Disbale Unidirectional Utilised Bandwidth on this interface\n")
+ "Disable Unidirectional Utilised Bandwidth on this interface\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
/* Unset Utilised Bandwidth */
link_param_cmd_unset(ifp, LP_USE_BW);
@@ -2557,7 +2543,8 @@ DEFUN (ip_address,
"Set the IP address of an interface\n"
"IP address (e.g. 10.0.0.1/8)\n")
{
- return ip_address_install (vty, vty->index, argv[0], NULL, NULL);
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ return ip_address_install (vty, ifp, argv[0], NULL, NULL);
}
DEFUN (no_ip_address,
@@ -2568,7 +2555,8 @@ DEFUN (no_ip_address,
"Set the IP address of an interface\n"
"IP Address (e.g. 10.0.0.1/8)")
{
- return ip_address_uninstall (vty, vty->index, argv[0], NULL, NULL);
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ return ip_address_uninstall (vty, ifp, argv[0], NULL, NULL);
}
@@ -2582,7 +2570,8 @@ DEFUN (ip_address_label,
"Label of this address\n"
"Label\n")
{
- return ip_address_install (vty, vty->index, argv[0], NULL, argv[1]);
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ return ip_address_install (vty, ifp, argv[0], NULL, argv[1]);
}
DEFUN (no_ip_address_label,
@@ -2595,7 +2584,8 @@ DEFUN (no_ip_address_label,
"Label of this address\n"
"Label\n")
{
- return ip_address_uninstall (vty, vty->index, argv[0], NULL, argv[1]);
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ return ip_address_uninstall (vty, ifp, argv[0], NULL, argv[1]);
}
#endif /* HAVE_NETLINK */
@@ -2758,7 +2748,8 @@ DEFUN (ipv6_address,
"Set the IP address of an interface\n"
"IPv6 address (e.g. 3ffe:506::1/48)\n")
{
- return ipv6_address_install (vty, vty->index, argv[0], NULL, NULL, 0);
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ return ipv6_address_install (vty, ifp, argv[0], NULL, NULL, 0);
}
DEFUN (no_ipv6_address,
@@ -2769,7 +2760,8 @@ DEFUN (no_ipv6_address,
"Set the IP address of an interface\n"
"IPv6 address (e.g. 3ffe:506::1/48)\n")
{
- return ipv6_address_uninstall (vty, vty->index, argv[0], NULL, NULL, 0);
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ return ipv6_address_uninstall (vty, ifp, argv[0], NULL, NULL, 0);
}
#endif /* HAVE_IPV6 */
diff --git a/zebra/irdp_interface.c b/zebra/irdp_interface.c
index 8fb4fcad10..9d8c2e67bf 100644
--- a/zebra/irdp_interface.c
+++ b/zebra/irdp_interface.c
@@ -380,12 +380,7 @@ DEFUN (ip_irdp_multicast,
IP_STR
"ICMP Router discovery on this interface using multicast\n")
{
- struct interface *ifp;
-
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
+ VTY_DECLVAR_CONTEXT (interface, ifp);
irdp_if_start(ifp, TRUE, TRUE);
return CMD_SUCCESS;
@@ -397,12 +392,7 @@ DEFUN (ip_irdp_broadcast,
IP_STR
"ICMP Router discovery on this interface using broadcast\n")
{
- struct interface *ifp;
-
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
+ VTY_DECLVAR_CONTEXT (interface, ifp);
irdp_if_start(ifp, FALSE, TRUE);
return CMD_SUCCESS;
@@ -415,12 +405,7 @@ DEFUN (no_ip_irdp,
IP_STR
"Disable ICMP Router discovery on this interface\n")
{
- struct interface *ifp;
-
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
+ VTY_DECLVAR_CONTEXT (interface, ifp);
irdp_if_stop(ifp);
return CMD_SUCCESS;
@@ -432,12 +417,7 @@ DEFUN (ip_irdp_shutdown,
IP_STR
"ICMP Router discovery shutdown on this interface\n")
{
- struct interface *ifp;
-
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
+ VTY_DECLVAR_CONTEXT (interface, ifp);
irdp_if_shutdown(ifp);
return CMD_SUCCESS;
@@ -450,12 +430,7 @@ DEFUN (no_ip_irdp_shutdown,
IP_STR
"ICMP Router discovery no shutdown on this interface\n")
{
- struct interface *ifp;
-
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
+ VTY_DECLVAR_CONTEXT (interface, ifp);
irdp_if_no_shutdown(ifp);
return CMD_SUCCESS;
@@ -469,13 +444,9 @@ DEFUN (ip_irdp_holdtime,
"Set holdtime value\n"
"Holdtime value in seconds. Default is 1800 seconds\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -492,13 +463,9 @@ DEFUN (ip_irdp_minadvertinterval,
"Set minimum time between advertisement\n"
"Minimum advertisement interval in seconds\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -525,13 +492,9 @@ DEFUN (ip_irdp_maxadvertinterval,
"Set maximum time between advertisement\n"
"Maximum advertisement interval in seconds\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -564,13 +527,9 @@ DEFUN (ip_irdp_preference,
"Set default preference level for this interface\n"
"Preference level\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -588,20 +547,15 @@ DEFUN (ip_irdp_address_preference,
"Set IRDP address for advertise\n"
"Preference level\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct listnode *node;
struct in_addr ip;
int pref;
int ret;
- struct interface *ifp;
struct zebra_if *zi;
struct irdp_interface *irdp;
struct Adv *adv;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
-
zi=ifp->info;
irdp=&zi->irdp;
@@ -633,19 +587,14 @@ DEFUN (no_ip_irdp_address_preference,
"Select IRDP address\n"
"Old preference level\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct listnode *node, *nnode;
struct in_addr ip;
int ret;
- struct interface *ifp;
struct zebra_if *zi;
struct irdp_interface *irdp;
struct Adv *adv;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
-
zi=ifp->info;
irdp=&zi->irdp;
@@ -671,13 +620,9 @@ DEFUN (ip_irdp_debug_messages,
IP_STR
"ICMP Router discovery debug Averts. and Solicits (short)\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -693,13 +638,9 @@ DEFUN (ip_irdp_debug_misc,
IP_STR
"ICMP Router discovery debug Averts. and Solicits (short)\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -715,13 +656,9 @@ DEFUN (ip_irdp_debug_packet,
IP_STR
"ICMP Router discovery debug Averts. and Solicits (short)\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
@@ -738,13 +675,9 @@ DEFUN (ip_irdp_debug_disable,
IP_STR
"ICMP Router discovery debug Averts. and Solicits (short)\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zi;
struct irdp_interface *irdp;
- ifp = (struct interface *) vty->index;
- if(!ifp) {
- return CMD_WARNING;
- }
zi=ifp->info;
irdp=&zi->irdp;
diff --git a/zebra/main.c b/zebra/main.c
index da7e6b6fb8..9247d43507 100644
--- a/zebra/main.c
+++ b/zebra/main.c
@@ -346,6 +346,7 @@ main (int argc, char **argv)
/* Vty related initialize. */
signal_init (zebrad.master, array_size(zebra_signals), zebra_signals);
cmd_init (1);
+ vty_config_lockless ();
vty_init (zebrad.master);
memory_init ();
diff --git a/zebra/rtadv.c b/zebra/rtadv.c
index ac297890a5..3e0a198702 100644
--- a/zebra/rtadv.c
+++ b/zebra/rtadv.c
@@ -871,10 +871,8 @@ DEFUN (ipv6_nd_suppress_ra,
"Neighbor discovery\n"
"Suppress Router Advertisement\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
if (if_is_loopback (ifp) ||
CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_VRF_LOOPBACK))
@@ -884,7 +882,6 @@ DEFUN (ipv6_nd_suppress_ra,
}
ipv6_nd_suppress_ra_set (ifp, RA_SUPPRESS);
- zif = ifp->info;
zif->rtadv.configured = 0;
return CMD_SUCCESS;
}
@@ -897,10 +894,8 @@ DEFUN (no_ipv6_nd_suppress_ra,
"Neighbor discovery\n"
"Suppress Router Advertisement\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
if (if_is_loopback (ifp) ||
CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_VRF_LOOPBACK))
@@ -910,7 +905,6 @@ DEFUN (no_ipv6_nd_suppress_ra,
}
ipv6_nd_suppress_ra_set (ifp, RA_ENABLE);
- zif = ifp->info;
zif->rtadv.configured = 1;
return CMD_SUCCESS;
}
@@ -923,8 +917,8 @@ DEFUN (ipv6_nd_ra_interval_msec,
"Router Advertisement interval\n"
"Router Advertisement interval in milliseconds\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
unsigned interval;
- struct interface *ifp = (struct interface *) vty->index;
struct zebra_if *zif = ifp->info;
struct zebra_vrf *zvrf = vrf_info_lookup (ifp->vrf_id);
struct zebra_ns *zns;
@@ -958,8 +952,8 @@ DEFUN (ipv6_nd_ra_interval,
"Router Advertisement interval\n"
"Router Advertisement interval in seconds\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
unsigned interval;
- struct interface *ifp = (struct interface *) vty->index;
struct zebra_if *zif = ifp->info;
struct zebra_vrf *zvrf = vrf_info_lookup (ifp->vrf_id);
struct zebra_ns *zns;
@@ -993,13 +987,11 @@ DEFUN (no_ipv6_nd_ra_interval,
"Neighbor discovery\n"
"Router Advertisement interval\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
struct zebra_vrf *zvrf;
struct zebra_ns *zns;
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
zvrf = vrf_info_lookup (ifp->vrf_id);
zns = zvrf->zns;
@@ -1038,12 +1030,9 @@ DEFUN (ipv6_nd_ra_lifetime,
"Router lifetime\n"
"Router lifetime in seconds (0 stands for a non-default gw)\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
int lifetime;
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
VTY_GET_INTEGER_RANGE ("router lifetime", lifetime, argv[0], 0, 9000);
@@ -1070,11 +1059,8 @@ DEFUN (no_ipv6_nd_ra_lifetime,
"Neighbor discovery\n"
"Router lifetime\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvDefaultLifetime = -1;
@@ -1098,7 +1084,7 @@ DEFUN (ipv6_nd_reachable_time,
"Reachable time\n"
"Reachable time in milliseconds\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zif = ifp->info;
VTY_GET_INTEGER_RANGE ("reachable time", zif->rtadv.AdvReachableTime, argv[0], 1, RTADV_MAX_REACHABLE_TIME);
return CMD_SUCCESS;
@@ -1112,11 +1098,8 @@ DEFUN (no_ipv6_nd_reachable_time,
"Neighbor discovery\n"
"Reachable time\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvReachableTime = 0;
@@ -1140,7 +1123,7 @@ DEFUN (ipv6_nd_homeagent_preference,
"Home Agent preference\n"
"preference value (default is 0, least preferred)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zif = ifp->info;
VTY_GET_INTEGER_RANGE ("home agent preference", zif->rtadv.HomeAgentPreference, argv[0], 0, 65535);
return CMD_SUCCESS;
@@ -1154,11 +1137,8 @@ DEFUN (no_ipv6_nd_homeagent_preference,
"Neighbor discovery\n"
"Home Agent preference\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.HomeAgentPreference = 0;
@@ -1182,7 +1162,7 @@ DEFUN (ipv6_nd_homeagent_lifetime,
"Home Agent lifetime\n"
"Home Agent lifetime in seconds (0 to track ra-lifetime)\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zif = ifp->info;
VTY_GET_INTEGER_RANGE ("home agent lifetime", zif->rtadv.HomeAgentLifetime, argv[0], 0, RTADV_MAX_HALIFETIME);
return CMD_SUCCESS;
@@ -1196,11 +1176,8 @@ DEFUN (no_ipv6_nd_homeagent_lifetime,
"Neighbor discovery\n"
"Home Agent lifetime\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.HomeAgentLifetime = -1;
@@ -1223,11 +1200,8 @@ DEFUN (ipv6_nd_managed_config_flag,
"Neighbor discovery\n"
"Managed address configuration flag\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvManagedFlag = 1;
@@ -1242,11 +1216,8 @@ DEFUN (no_ipv6_nd_managed_config_flag,
"Neighbor discovery\n"
"Managed address configuration flag\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvManagedFlag = 0;
@@ -1260,11 +1231,8 @@ DEFUN (ipv6_nd_homeagent_config_flag,
"Neighbor discovery\n"
"Home Agent configuration flag\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvHomeAgentFlag = 1;
@@ -1279,11 +1247,8 @@ DEFUN (no_ipv6_nd_homeagent_config_flag,
"Neighbor discovery\n"
"Home Agent configuration flag\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvHomeAgentFlag = 0;
@@ -1297,11 +1262,8 @@ DEFUN (ipv6_nd_adv_interval_config_option,
"Neighbor discovery\n"
"Advertisement Interval Option\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvIntervalOption = 1;
@@ -1316,11 +1278,8 @@ DEFUN (no_ipv6_nd_adv_interval_config_option,
"Neighbor discovery\n"
"Advertisement Interval Option\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvIntervalOption = 0;
@@ -1334,11 +1293,8 @@ DEFUN (ipv6_nd_other_config_flag,
"Neighbor discovery\n"
"Other statefull configuration flag\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvOtherConfigFlag = 1;
@@ -1353,11 +1309,8 @@ DEFUN (no_ipv6_nd_other_config_flag,
"Neighbor discovery\n"
"Other statefull configuration flag\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.AdvOtherConfigFlag = 0;
@@ -1380,16 +1333,13 @@ DEFUN (ipv6_nd_prefix,
"Do not use prefix for autoconfiguration\n"
"Set Router Address flag\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zebra_if = ifp->info;
int i;
int ret;
int cursor = 1;
- struct interface *ifp;
- struct zebra_if *zebra_if;
struct rtadv_prefix rp;
- ifp = (struct interface *) vty->index;
- zebra_if = ifp->info;
-
ret = str2prefix_ipv6 (argv[0], &rp.prefix);
if (!ret)
{
@@ -1611,14 +1561,11 @@ DEFUN (no_ipv6_nd_prefix,
"Prefix information\n"
"IPv6 prefix\n")
{
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zebra_if = ifp->info;
int ret;
- struct interface *ifp;
- struct zebra_if *zebra_if;
struct rtadv_prefix rp;
- ifp = (struct interface *) vty->index;
- zebra_if = ifp->info;
-
ret = str2prefix_ipv6 (argv[0], &rp.prefix);
if (!ret)
{
@@ -1801,13 +1748,10 @@ DEFUN (ipv6_nd_router_preference,
"Low default router preference\n"
"Medium default router preference (default)\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
int i = 0;
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
-
while (0 != rtadv_pref_strs[i])
{
if (strncmp (argv[0], rtadv_pref_strs[i], 1) == 0)
@@ -1829,11 +1773,8 @@ DEFUN (no_ipv6_nd_router_preference,
"Neighbor discovery\n"
"Default router preference\n")
{
- struct interface *ifp;
- struct zebra_if *zif;
-
- ifp = (struct interface *) vty->index;
- zif = ifp->info;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
+ struct zebra_if *zif = ifp->info;
zif->rtadv.DefaultPreference = RTADV_PREF_MEDIUM; /* Default per RFC4191. */
@@ -1859,7 +1800,7 @@ DEFUN (ipv6_nd_mtu,
"Advertised MTU\n"
"MTU in bytes\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zif = ifp->info;
VTY_GET_INTEGER_RANGE ("MTU", zif->rtadv.AdvLinkMTU, argv[0], 1, 65535);
return CMD_SUCCESS;
@@ -1873,7 +1814,7 @@ DEFUN (no_ipv6_nd_mtu,
"Neighbor discovery\n"
"Advertised MTU\n")
{
- struct interface *ifp = (struct interface *) vty->index;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *zif = ifp->info;
zif->rtadv.AdvLinkMTU = 0;
return CMD_SUCCESS;
diff --git a/zebra/test_main.c b/zebra/test_main.c
index bbaf450282..828b61af91 100644
--- a/zebra/test_main.c
+++ b/zebra/test_main.c
@@ -124,11 +124,10 @@ DEFUN (test_interface_state,
"up\n"
"down\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
if (argc < 1)
return CMD_WARNING;
-
- ifp = vty->index;
+
if (ifp->ifindex == IFINDEX_INTERNAL)
{
ifp->ifindex = ++test_ifindex;
@@ -294,6 +293,7 @@ main (int argc, char **argv)
/* Vty related initialize. */
signal_init (zebrad.master, array_size(zebra_signals), zebra_signals);
cmd_init (1);
+ vty_config_lockless ();
vty_init (zebrad.master);
memory_init ();
zebra_debug_init ();
diff --git a/zebra/zebra_ptm.c b/zebra/zebra_ptm.c
index 133b0fc2e9..ebae1bd4b9 100644
--- a/zebra/zebra_ptm.c
+++ b/zebra/zebra_ptm.c
@@ -298,12 +298,11 @@ DEFUN (zebra_ptm_enable_if,
"ptm-enable",
"Enable neighbor check with specified topology\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
struct zebra_if *if_data;
int old_ptm_enable;
int send_linkdown = 0;
- ifp = (struct interface *) vty->index;
if (ifp->ifindex == IFINDEX_INTERNAL)
{
return CMD_SUCCESS;
@@ -338,12 +337,10 @@ DEFUN (no_zebra_ptm_enable_if,
NO_STR
"Enable neighbor check with specified topology\n")
{
- struct interface *ifp;
+ VTY_DECLVAR_CONTEXT (interface, ifp);
int send_linkup = 0;
struct zebra_if *if_data;
- ifp = (struct interface *) vty->index;
-
if ((ifp->ifindex != IFINDEX_INTERNAL) && (ifp->ptm_enable))
{
if (!if_is_operative(ifp))
diff --git a/zebra/zebra_routemap.c b/zebra/zebra_routemap.c
index e6c5a3e917..685f5cc4b9 100644
--- a/zebra/zebra_routemap.c
+++ b/zebra/zebra_routemap.c
@@ -58,10 +58,11 @@ static void zebra_route_map_set_delay_timer(u_int32_t value);
/* Add zebra route map rule */
static int
-zebra_route_match_add(struct vty *vty, struct route_map_index *index,
+zebra_route_match_add(struct vty *vty,
const char *command, const char *arg,
route_map_event_t type)
{
+ VTY_DECLVAR_CONTEXT (route_map_index, index);
int ret;
ret = route_map_add_match (index, command, arg);
@@ -87,10 +88,11 @@ zebra_route_match_add(struct vty *vty, struct route_map_index *index,
/* Delete zebra route map rule. */
static int
-zebra_route_match_delete (struct vty *vty, struct route_map_index *index,
+zebra_route_match_delete (struct vty *vty,
const char *command, const char *arg,
route_map_event_t type)
{
+ VTY_DECLVAR_CONTEXT (route_map_index, index);
int ret;
char *dep_name = NULL;
const char *tmpstr;
@@ -138,9 +140,10 @@ zebra_route_match_delete (struct vty *vty, struct route_map_index *index,
/* Add zebra route map rule. */
static int
-zebra_route_set_add (struct vty *vty, struct route_map_index *index,
+zebra_route_set_add (struct vty *vty,
const char *command, const char *arg)
{
+ VTY_DECLVAR_CONTEXT (route_map_index, index);
int ret;
ret = route_map_add_set (index, command, arg);
@@ -161,9 +164,10 @@ zebra_route_set_add (struct vty *vty, struct route_map_index *index,
/* Delete zebra route map rule. */
static int
-zebra_route_set_delete (struct vty *vty, struct route_map_index *index,
+zebra_route_set_delete (struct vty *vty,
const char *command, const char *arg)
{
+ VTY_DECLVAR_CONTEXT (route_map_index, index);
int ret;
ret = route_map_delete_set (index, command, arg);
@@ -301,7 +305,7 @@ DEFUN (match_interface,
"match first hop interface of route\n"
"Interface name\n")
{
- return zebra_route_match_add (vty, vty->index, "interface", argv[0],
+ return zebra_route_match_add (vty, "interface", argv[0],
RMAP_EVENT_MATCH_ADDED);
}
@@ -313,9 +317,9 @@ DEFUN (no_match_interface,
"Match first hop interface of route\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index, "interface", NULL, RMAP_EVENT_MATCH_DELETED);
+ return zebra_route_match_delete (vty, "interface", NULL, RMAP_EVENT_MATCH_DELETED);
- return zebra_route_match_delete (vty, vty->index, "interface", argv[0], RMAP_EVENT_MATCH_DELETED);
+ return zebra_route_match_delete (vty, "interface", argv[0], RMAP_EVENT_MATCH_DELETED);
}
ALIAS (no_match_interface,
@@ -333,7 +337,7 @@ DEFUN (match_tag,
"Match tag of route\n"
"Tag value\n")
{
- return zebra_route_match_add (vty, vty->index, "tag", argv[0],
+ return zebra_route_match_add (vty, "tag", argv[0],
RMAP_EVENT_MATCH_ADDED);
}
@@ -345,10 +349,10 @@ DEFUN (no_match_tag,
"Match tag of route\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index, "tag", NULL,
+ return zebra_route_match_delete (vty, "tag", NULL,
RMAP_EVENT_MATCH_DELETED);
- return zebra_route_match_delete (vty, vty->index, "tag", argv[0],
+ return zebra_route_match_delete (vty, "tag", argv[0],
RMAP_EVENT_MATCH_DELETED);
}
@@ -369,7 +373,7 @@ DEFUN (match_ip_next_hop,
"IP access-list number (expanded range)\n"
"IP Access-list name\n")
{
- return zebra_route_match_add (vty, vty->index, "ip next-hop", argv[0], RMAP_EVENT_FILTER_ADDED);
+ return zebra_route_match_add (vty, "ip next-hop", argv[0], RMAP_EVENT_FILTER_ADDED);
}
DEFUN (no_match_ip_next_hop,
@@ -381,10 +385,10 @@ DEFUN (no_match_ip_next_hop,
"Match next-hop address of route\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index, "ip next-hop", NULL,
+ return zebra_route_match_delete (vty, "ip next-hop", NULL,
RMAP_EVENT_FILTER_DELETED);
- return zebra_route_match_delete (vty, vty->index, "ip next-hop", argv[0],
+ return zebra_route_match_delete (vty, "ip next-hop", argv[0],
RMAP_EVENT_FILTER_DELETED);
}
@@ -408,7 +412,7 @@ DEFUN (match_ip_next_hop_prefix_list,
"Match entries of prefix-lists\n"
"IP prefix-list name\n")
{
- return zebra_route_match_add (vty, vty->index, "ip next-hop prefix-list",
+ return zebra_route_match_add (vty, "ip next-hop prefix-list",
argv[0], RMAP_EVENT_PLIST_ADDED);
}
@@ -422,11 +426,11 @@ DEFUN (no_match_ip_next_hop_prefix_list,
"Match entries of prefix-lists\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip next-hop prefix-list", NULL,
RMAP_EVENT_PLIST_DELETED);
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip next-hop prefix-list", argv[0],
RMAP_EVENT_PLIST_DELETED);
}
@@ -452,7 +456,7 @@ DEFUN (match_ip_address,
"IP Access-list name\n")
{
- return zebra_route_match_add (vty, vty->index, "ip address", argv[0],
+ return zebra_route_match_add (vty, "ip address", argv[0],
RMAP_EVENT_FILTER_ADDED);
}
@@ -465,10 +469,10 @@ DEFUN (no_match_ip_address,
"Match address of route\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index, "ip address", NULL,
+ return zebra_route_match_delete (vty, "ip address", NULL,
RMAP_EVENT_FILTER_DELETED);
- return zebra_route_match_delete (vty, vty->index, "ip address", argv[0],
+ return zebra_route_match_delete (vty, "ip address", argv[0],
RMAP_EVENT_FILTER_DELETED);
}
@@ -492,7 +496,7 @@ DEFUN (match_ip_address_prefix_list,
"Match entries of prefix-lists\n"
"IP prefix-list name\n")
{
- return zebra_route_match_add (vty, vty->index, "ip address prefix-list",
+ return zebra_route_match_add (vty, "ip address prefix-list",
argv[0], RMAP_EVENT_PLIST_ADDED);
}
@@ -506,11 +510,11 @@ DEFUN (no_match_ip_address_prefix_list,
"Match entries of prefix-lists\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip address prefix-list", NULL,
RMAP_EVENT_PLIST_DELETED);
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip address prefix-list", argv[0],
RMAP_EVENT_PLIST_DELETED);
}
@@ -534,7 +538,7 @@ DEFUN (match_ip_address_prefix_len,
"Match prefix length of ip address\n"
"Prefix length\n")
{
- return zebra_route_match_add (vty, vty->index, "ip address prefix-len",
+ return zebra_route_match_add (vty, "ip address prefix-len",
argv[0], RMAP_EVENT_MATCH_ADDED);
}
@@ -548,11 +552,11 @@ DEFUN (no_match_ip_address_prefix_len,
"prefix length of ip address\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip address prefix-len", NULL,
RMAP_EVENT_MATCH_DELETED);
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip address prefix-len", argv[0],
RMAP_EVENT_MATCH_DELETED);
}
@@ -575,7 +579,7 @@ DEFUN (match_ip_nexthop_prefix_len,
"Match prefixlen of given nexthop\n"
"Prefix length\n")
{
- return zebra_route_match_add (vty, vty->index, "ip next-hop prefix-len",
+ return zebra_route_match_add (vty, "ip next-hop prefix-len",
argv[0], RMAP_EVENT_MATCH_ADDED);
}
@@ -589,11 +593,11 @@ DEFUN (no_match_ip_nexthop_prefix_len,
"Match prefix length of nexthop\n")
{
if (argc == 0)
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip next-hop prefix-len", NULL,
RMAP_EVENT_MATCH_DELETED);
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"ip next-hop prefix-len", argv[0],
RMAP_EVENT_MATCH_DELETED);
}
@@ -620,7 +624,7 @@ DEFUN (match_source_protocol,
VTY_NEWLINE);
return CMD_WARNING;
}
- return zebra_route_match_add (vty, vty->index, "source-protocol",
+ return zebra_route_match_add (vty, "source-protocol",
argv[0], RMAP_EVENT_MATCH_ADDED);
}
@@ -643,7 +647,7 @@ DEFUN (no_match_source_protocol,
return CMD_WARNING;
}
}
- return zebra_route_match_delete (vty, vty->index,
+ return zebra_route_match_delete (vty,
"source-protocol", argv[0] ? argv[0] : NULL,
RMAP_EVENT_MATCH_DELETED);
}
@@ -706,7 +710,7 @@ DEFUN (set_src,
vty_out (vty, "%% not a local address%s", VTY_NEWLINE);
return CMD_WARNING;
}
- return zebra_route_set_add (vty, vty->index, "src", argv[0]);
+ return zebra_route_set_add (vty, "src", argv[0]);
}
DEFUN (no_set_src,
@@ -717,9 +721,9 @@ DEFUN (no_set_src,
"Source address for route\n")
{
if (argc == 0)
- return zebra_route_set_delete (vty, vty->index, "src", NULL);
+ return zebra_route_set_delete (vty, "src", NULL);
- return zebra_route_set_delete (vty, vty->index, "src", argv[0]);
+ return zebra_route_set_delete (vty, "src", argv[0]);
}
DEFUN (zebra_route_map_timer,