mirror of
https://github.com/espressif/openthread.git
synced 2026-10-02 05:47:40 +00:00
[thread-cert] Thread 1.2 CI with OTBR and Backbone link (#5489)
Thread 1.2 CI with OTBR and Backbone link:
- Run OTBR in Dockers with Backbone link
- Enhance node.py to work with OTBR Docker
- Add Packet Verification for 5.11.1
- incomplete, some steps can not pass yet, just to make sure
Backbone traffic verification works
- Support running multiple tests simultaneously (default: each test
run 3 instances)
- Build OTBR Docker using OpenThread PR code
- Upload code coverage in Docker
Some implementation details:
- Most existing code of node.py is shared by OTBR Docker
- Backbone related test scripts are found in
tests/scripts/thread-cert/backbone
- A new script tests/scripts/thread-cert/run_bbr_tests.py is added to
manage multiple running tests
- Test configuration differs according to PORT_OFFSET
- Backbone interface name: Backbone{PORT_OFFSET}
- Backbone network prefix: 91{PORT_OFFSET:02x}::/64
- Docker instance name: otbr_{PORT_OFFSET}_{nodeid}
- Output Files:
- Pcap:
- Thread: {test_name}_{PORT_OFFSET}.pcap
- Backbone: {test_name}_{PORT_OFFSET}_backbone.pcap
- Merged: {test_name}_{PORT_OFFSET}_merged.pcap
- Log: {test_name}_{PORT_OFFSET}.log
This commit is contained in:
@@ -26,10 +26,9 @@
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
from enum import Enum
|
||||
import os
|
||||
from enum import Enum
|
||||
|
||||
from tlvs_parsing import SubTlvsFactory
|
||||
import coap
|
||||
import dtls
|
||||
import ipv6
|
||||
@@ -43,6 +42,7 @@ import network_diag
|
||||
import network_layer
|
||||
import simulator
|
||||
import sniffer
|
||||
from tlvs_parsing import SubTlvsFactory
|
||||
|
||||
# This extended address will generate the MESH_LOCAL_PREFIX
|
||||
EXTENDED_PANID = '000db80000000000'
|
||||
@@ -60,8 +60,18 @@ LINK_LOCAL_ALL_NODES_ADDRESS = 'ff02::1'
|
||||
LINK_LOCAL_ALL_ROUTERS_ADDRESS = 'ff02::2'
|
||||
|
||||
DOMAIN_PREFIX = 'fd00:7d03:7d03:7d03::/64'
|
||||
DOMAIN_PREFIX_REGEX_PATTERN = '^fd00:7d03:7d03:7d03:'
|
||||
DOMAIN_PREFIX_ALTER = 'fd00:7d04:7d04:7d04::/64'
|
||||
|
||||
PORT_OFFSET = int(os.getenv('PORT_OFFSET', '0'))
|
||||
BACKBONE_PREFIX = f'{0x9100 + PORT_OFFSET:04x}::/64'
|
||||
BACKBONE_PREFIX_REGEX_PATTERN = f'^{0x9100 + PORT_OFFSET:04x}:'
|
||||
BACKBONE_DOCKER_NETWORK_NAME = f'backbone{PORT_OFFSET}'
|
||||
|
||||
OTBR_DOCKER_IMAGE = os.getenv('OTBR_DOCKER_IMAGE', 'otbr-ot12-backbone-ci')
|
||||
OTBR_DOCKER_NAME_PREFIX = f'otbr_{PORT_OFFSET}_'
|
||||
OTBR_COMMIT = os.getenv('OTBR_COMMIT', 'master')
|
||||
|
||||
ALL_NETWORK_BBRS_ADDRESS = 'ff32:40:fd00:db8:0:0:0:3'
|
||||
|
||||
ALL_DOMAIN_BBRS_ADDRESS = 'ff32:40:fd00:7d03:7d03:7d03:0:3'
|
||||
@@ -86,7 +96,17 @@ DEFAULT_MASTER_KEY = bytearray([
|
||||
0xff,
|
||||
])
|
||||
|
||||
ADDRESS_TYPE = Enum('ADDRESS_TYPE', ('LINK_LOCAL', 'GLOBAL', 'RLOC', 'ALOC', 'ML_EID'))
|
||||
|
||||
class ADDRESS_TYPE(Enum):
|
||||
LINK_LOCAL = 'LINK_LOCAL'
|
||||
GLOBAL = 'GLOBAL'
|
||||
RLOC = 'RLOC'
|
||||
ALOC = 'ALOC'
|
||||
ML_EID = 'ML_EID'
|
||||
DUA = 'DUA'
|
||||
BACKBONE_GUA = 'BACKBONE_GUA'
|
||||
|
||||
|
||||
RSSI = {
|
||||
'LINK_QULITY_0': -100,
|
||||
'LINK_QULITY_1': -95,
|
||||
@@ -493,11 +513,11 @@ def create_default_thread_message_factory(master_key=DEFAULT_MASTER_KEY):
|
||||
return message.MessageFactory(lowpan_parser=lowpan_parser)
|
||||
|
||||
|
||||
def create_default_thread_sniffer():
|
||||
return sniffer.Sniffer(create_default_thread_message_factory())
|
||||
def create_default_thread_sniffer(use_message_factory=True):
|
||||
return sniffer.Sniffer(create_default_thread_message_factory() if use_message_factory else None)
|
||||
|
||||
|
||||
def create_default_simulator():
|
||||
def create_default_simulator(use_message_factory=True):
|
||||
if VIRTUAL_TIME:
|
||||
return simulator.VirtualTime()
|
||||
return simulator.RealTime()
|
||||
return simulator.VirtualTime(use_message_factory=use_message_factory)
|
||||
return simulator.RealTime(use_message_factory=use_message_factory)
|
||||
|
||||
Reference in New Issue
Block a user