Add support for API client to receive L2 MAC events 88/7888/3
authorJohn Lo <loj@cisco.com>
Thu, 3 Aug 2017 04:35:36 +0000 (00:35 -0400)
committerNeale Ranns <nranns@cisco.com>
Thu, 3 Aug 2017 08:45:32 +0000 (08:45 +0000)
commit8d00fff8dff4e449767601645422e03df92a83af
treeba16f948bcd2bb65dec310876c5febd84fc85665
parenta825c8bf5c641051b0cf71c63c3ddd269d90069b
Add support for API client to receive L2 MAC events

Added APIs want_l2_macs_events and l2_macs_event to allow an API
client to receive notification events from VPP for MAC learned
or aged in L2FIB. Only one API client is allowed for L2 MAC events.

The want_l2_macs_events API allow caller to specify MAC learn
limit, event scan delay and max number of MACs that can be included
in a event message. These parameters should be choosen properly as
to not have too many MAC events sent by VPP and overwhelm the API
share memory. They can all be left as 0's so VPP will setup reasonable
defaults which are: 1000 learn limit, 100 msec scan delay and 100
MACs per event message.

If want_l2_macs_events is never called, VPP learning and aging
should behave as before except that MAC entries provisioned by API
or CLI will not be aged, even if it is not set as static_mac. These
non static MACs, however, can be overwritten by MAC learning on a
MAC move as a leared MAC. Only learned MACs are subject to aging.

Change-Id: Ia3757a80cf8adb2811a089d2eafbd6439461285c
Signed-off-by: John Lo <loj@cisco.com>
src/vat/api_format.c
src/vnet/api_errno.h
src/vnet/l2/l2.api
src/vnet/l2/l2_api.c
src/vnet/l2/l2_bd.c
src/vnet/l2/l2_fib.c
src/vnet/l2/l2_fib.h
src/vnet/l2/l2_fwd.c
src/vnet/l2/l2_learn.c
src/vnet/l2/l2_learn.h
src/vpp/api/custom_dump.c