diff options
author | 2016-12-02 08:18:55 +0100 | |
---|---|---|
committer | 2016-12-02 11:53:25 +0000 | |
commit | 9dd34e00ede6e5d0b32e8e0c0b26b03dee468549 (patch) | |
tree | bd3137c0d81d606e3563e6c9972a21f76915020f /vpp | |
parent | 21da6ce02535cc4b0a5adf637af7c5b085ce5e67 (diff) |
api: fix inconsistent behaviour when adding l2fib filter entry (VPP-147)
Inconsistency when adding L2 fib entry using CLI and API (doesn't work)
Change-Id: I6b58d8a4c444d2712d1a4c225cea5eb5189c355f
Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
Diffstat (limited to 'vpp')
-rw-r--r-- | vpp/vpp-api/api.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c index 77cc89f4..a011c650 100644 --- a/vpp/vpp-api/api.c +++ b/vpp/vpp-api/api.c @@ -1733,24 +1733,27 @@ vl_api_l2fib_add_del_t_handler (vl_api_l2fib_add_del_t * mp) if (mp->is_add) { - VALIDATE_SW_IF_INDEX (mp); - if (vec_len (l2im->configs) <= sw_if_index) - { - rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; - goto bad_sw_if_index; - } - else + filter_mac = mp->filter_mac ? 1 : 0; + if (filter_mac == 0) { - l2_input_config_t *config; - config = vec_elt_at_index (l2im->configs, sw_if_index); - if (config->bridge == 0) + VALIDATE_SW_IF_INDEX (mp); + if (vec_len (l2im->configs) <= sw_if_index) { rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; goto bad_sw_if_index; } + else + { + l2_input_config_t *config; + config = vec_elt_at_index (l2im->configs, sw_if_index); + if (config->bridge == 0) + { + rv = VNET_API_ERROR_INVALID_SW_IF_INDEX; + goto bad_sw_if_index; + } + } } static_mac = mp->static_mac ? 1 : 0; - filter_mac = mp->filter_mac ? 1 : 0; bvi_mac = mp->bvi_mac ? 1 : 0; l2fib_add_entry (mac, bd_index, sw_if_index, static_mac, filter_mac, bvi_mac); |