[backbone-router] backbone TMF enhancements (#5660)

This commit enhances Backbone TMF:

- Subscribe Backbone TMF on multicast addresses on the Backbone
  interface
  - All Network BBRs Multicast Address
  - All Domain BBRs Multicast Address

- Thread Netif no longer subscribe these two addresses, because BBR
  Multicast Addresses are only defined for the Backbone Link in Thread
  Spec 9.4.8.1

- Make sure backbone messages are using link local src addresses
  - Verify src addr for b/bmr messages
This commit is contained in:
Simon Lin
2020-10-23 08:48:54 -07:00
committed by GitHub
parent f83d1ff999
commit e00e5b3d70
17 changed files with 283 additions and 57 deletions
@@ -147,6 +147,7 @@ class BBR_5_11_01(thread_cert.TestCase):
pkts.filter_eth_src(PBBR_ETH).filter_coap_request('/b/bmr').must_next().must_verify(f"""
thread_meshcop.tlv.ipv6_addr == ['{MA1}']
and thread_bl.tlv.timeout == {MLR_TIMEOUT}
and ipv6.src.is_link_local
""")
# Router registers MA2 with default timeout
@@ -158,6 +159,7 @@ class BBR_5_11_01(thread_cert.TestCase):
pkts.filter_eth_src(PBBR_ETH).filter_coap_request('/b/bmr').must_next().must_verify(f"""
thread_meshcop.tlv.ipv6_addr == ['{MA2}']
and thread_bl.tlv.timeout == {MLR_TIMEOUT}
and ipv6.src.is_link_local
""")
# Commissioner registers MA3 with deafult timeout
@@ -169,6 +171,7 @@ class BBR_5_11_01(thread_cert.TestCase):
pkts.filter_eth_src(PBBR_ETH).filter_coap_request('/b/bmr').must_next().must_verify(f"""
thread_meshcop.tlv.ipv6_addr == ['{MA3}']
and thread_bl.tlv.timeout == {MLR_TIMEOUT}
and ipv6.src.is_link_local
""")
# Commissioner registers MA4 with custom timeout
@@ -180,6 +183,7 @@ class BBR_5_11_01(thread_cert.TestCase):
pkts.filter_eth_src(PBBR_ETH).filter_coap_request('/b/bmr').must_next().must_verify(f"""
thread_meshcop.tlv.ipv6_addr == ['{MA4}']
and thread_bl.tlv.timeout == {CUSTOM_MLR_TIMEOUT}
and ipv6.src.is_link_local
""")
# Commissioner unregisters MA5
@@ -190,6 +194,7 @@ class BBR_5_11_01(thread_cert.TestCase):
# Verify PBBR not sends `/b/bmr` on the Backbone link for MA5.
pkts.filter_eth_src(PBBR_ETH).filter_coap_request('/b/bmr').filter(f"""
thread_meshcop.tlv.ipv6_addr == ['{MA5}']
and ipv6.src.is_link_local
""").must_not_next()