Improve l2_macs_events API to provide MAC move information

Change mac_entry layout in l2_macs_event API message so the MAC
entry can be either add, delete or move where the sw_if_index of
an existing MAC entry changed. Also added a 8-bit flags field
in mac_entry for any future expansion.

Change-Id: I3bf9e1cf2556f2938202025a5d0772c2ce2fc99f
Signed-off-by: John Lo <loj@cisco.com>
This commit is contained in:
John Lo
2018-03-13 21:53:18 -04:00
committed by Dave Barach
parent 04def7418b
commit e23c99ec00
6 changed files with 31 additions and 12 deletions

View File

@ -70,6 +70,11 @@ from scapy.layers.inet import IP, UDP
from framework import VppTestCase, VppTestRunner
from util import Host, ppp
# from src/vnet/l2/l2_fib.h
MAC_EVENT_ACTION_ADD = 0
MAC_EVENT_ACTION_DELETE = 1
MAC_EVENT_ACTION_MOVE = 2
class TestL2fib(VppTestCase):
""" L2 FIB Test Case """
@ -483,7 +488,7 @@ class TestL2fib(VppTestCase):
evs = self.vapi.collect_events()
learned_macs = {
e.mac[i].mac_addr for e in evs for i in range(e.n_macs)
if not e.mac[i].is_del}
if e.mac[i].action == MAC_EVENT_ACTION_ADD}
macs = {h.bin_mac for swif in self.bd_ifs(bd1)
for h in hosts[self.pg_interfaces[swif].sw_if_index]}
self.vapi.want_macs_learn_events(enable_disable=0)
@ -507,7 +512,7 @@ class TestL2fib(VppTestCase):
self.assertGreater(len(evs), 0)
learned_macs = {
e.mac[i].mac_addr for e in evs for i in range(e.n_macs)
if not e.mac[i].is_del}
if e.mac[i].action == MAC_EVENT_ACTION_ADD}
macs = {h.bin_mac for swif in self.bd_ifs(bd1)
for h in hosts[self.pg_interfaces[swif].sw_if_index]}