diff options
author | John Lo <loj@cisco.com> | 2019-01-07 15:16:33 -0500 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-01-07 21:55:28 +0000 |
commit | e26c81fc80d1ce9a8746ebf4009149849b04f60f (patch) | |
tree | 12157a3247ed9169951e1083f8b50e240eec30c7 /src/vat/api_format.c | |
parent | 2500c79423c7d8d35b4e7b8f50060c09f2f857be (diff) |
L2 BD API to flush all IP-MAC entries in the specified BD
Implement API/CLI to clear IP-MAC tables used for ARP-termination
in the specified bridge domain.
The CLI to flush MAC IP tables for a BD is:
set bridge-domain arp entry <bd-id> del-all
The API added is bd_ip_mac_flush.
Change-Id: I34ceb87c0f480c7102f6559312c24081ed485af8
Signed-off-by: John Lo <loj@cisco.com>
Diffstat (limited to 'src/vat/api_format.c')
-rw-r--r-- | src/vat/api_format.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/vat/api_format.c b/src/vat/api_format.c index f39c9e62ae5..db22f29148f 100644 --- a/src/vat/api_format.c +++ b/src/vat/api_format.c @@ -5259,6 +5259,7 @@ _(ikev2_initiate_del_child_sa_reply) \ _(ikev2_initiate_rekey_child_sa_reply) \ _(delete_loopback_reply) \ _(bd_ip_mac_add_del_reply) \ +_(bd_ip_mac_flush_reply) \ _(want_interface_events_reply) \ _(cop_interface_enable_disable_reply) \ _(cop_whitelist_enable_disable_reply) \ @@ -5515,6 +5516,7 @@ _(IKEV2_INITIATE_DEL_CHILD_SA_REPLY, ikev2_initiate_del_child_sa_reply) \ _(IKEV2_INITIATE_REKEY_CHILD_SA_REPLY, ikev2_initiate_rekey_child_sa_reply) \ _(DELETE_LOOPBACK_REPLY, delete_loopback_reply) \ _(BD_IP_MAC_ADD_DEL_REPLY, bd_ip_mac_add_del_reply) \ +_(BD_IP_MAC_FLUSH_REPLY, bd_ip_mac_flush_reply) \ _(BD_IP_MAC_DETAILS, bd_ip_mac_details) \ _(DHCP_COMPL_EVENT, dhcp_compl_event) \ _(WANT_INTERFACE_EVENTS_REPLY, want_interface_events_reply) \ @@ -7385,6 +7387,40 @@ api_bd_ip_mac_add_del (vat_main_t * vam) return ret; } +static int +api_bd_ip_mac_flush (vat_main_t * vam) +{ + unformat_input_t *i = vam->input; + vl_api_bd_ip_mac_flush_t *mp; + u32 bd_id; + u8 bd_id_set = 0; + int ret; + + while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT) + { + if (unformat (i, "bd_id %d", &bd_id)) + { + bd_id_set++; + } + else + break; + } + + if (bd_id_set == 0) + { + errmsg ("missing bridge domain"); + return -99; + } + + M (BD_IP_MAC_FLUSH, mp); + + mp->bd_id = ntohl (bd_id); + + S (mp); + W (ret); + return ret; +} + static void vl_api_bd_ip_mac_details_t_handler (vl_api_bd_ip_mac_details_t * mp) { @@ -23352,7 +23388,8 @@ _(ikev2_initiate_del_child_sa, "<ispi>") \ _(ikev2_initiate_rekey_child_sa, "<ispi>") \ _(delete_loopback,"sw_if_index <nn>") \ _(bd_ip_mac_add_del, "bd_id <bridge-domain-id> <ip4/6-addr> <mac-addr> [del]") \ -_(bd_ip_mac_dump, "[bd_id] <id>") \ +_(bd_ip_mac_flush, "bd_id <bridge-domain-id>") \ +_(bd_ip_mac_dump, "[bd_id] <bridge-domain-id>") \ _(want_interface_events, "enable|disable") \ _(get_first_msg_id, "client <name>") \ _(cop_interface_enable_disable, "<intfc> | sw_if_index <nn> [disable]") \ |