[mlr] add MulticastListenersTable on BBR (#5292)

This commit adds the Multicast Listener Table for BBR:

- Implements Multicast Listener Table on BBR
  - Adds registered MAs to MulticastListenerTable
  - Reject when the table is full or the multicast address is invalid
    and return failed status
  - Respond with unsuccessful status along with failed addresses
  - Expire Listeners from MulticastListenerTable per second (using
    MinHeap for better performance)
- MLR enhancement
  - Re-register only failed multicast addresses (used to register all
    registering multicast addresses)
- Reference Device only APIs
  - Some APIs are defined for reference devices and tests.
- Add tests
  - Add unit test: test_multicast_listener_table.cpp (runs for 1.2-bbr
    only)
  - Add functional tests
This commit is contained in:
Simon Lin
2020-08-21 23:40:58 +08:00
committed by GitHub
parent ec0373c354
commit c73320ff3e
28 changed files with 2002 additions and 397 deletions
+19 -5
View File
@@ -138,16 +138,30 @@ do_clean()
rm -rfv "${OT_BUILDDIR}" || sudo rm -rfv "${OT_BUILDDIR}"
}
do_unit()
do_unit_version()
{
local builddir="${OT_BUILDDIR}/cmake/openthread-simulation-${THREAD_VERSION}"
local version=$1
local builddir="${OT_BUILDDIR}/cmake/openthread-simulation-${version}"
if [[ ! -d ${builddir} ]]; then
echo "Cannot find build directory!"
echo "Cannot find build directory: ${builddir}"
exit 1
fi
cd "${builddir}"
ninja test
(
cd "${builddir}"
ninja test
)
}
do_unit()
{
do_unit_version "${THREAD_VERSION}"
if [[ ${THREAD_VERSION} == "1.2" ]]; then
do_unit_version "1.2-bbr"
do_unit_version "1.1"
fi
}
do_cert()