Skip to content

Commit

Permalink
[tests] properly configure operational dataset (#502)
Browse files Browse the repository at this point in the history
  • Loading branch information
jwhui authored Jun 16, 2023
1 parent 6d756db commit d967477
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 11 deletions.
25 changes: 25 additions & 0 deletions pylibs/otns/cli/OTNS.py
Original file line number Diff line number Diff line change
Expand Up @@ -531,6 +531,31 @@ def set_networkkey(self, nodeid: int, key: str) -> None:
"""
self.node_cmd(nodeid, f'networkkey {key}')

def config_dataset(self, nodeid: int, panid: int = None, networkkey: str = None, network_name: str = None,
dataset='active'):
"""
Configure the active/pending dataset
:param nodeid: target node ID
:param panid: the Pan ID.
:param networkkey: the network key
:param network_name: the network name
"""
assert dataset in ('active', 'pending'), dataset

self.node_cmd(nodeid, 'dataset clear')

if panid is not None:
self.node_cmd(nodeid, f'dataset panid 0x{panid:04x}')

if networkkey is not None:
self.node_cmd(nodeid, f'dataset networkkey {networkkey}')

if network_name is not None:
network_name = self._escape_whitespace(network_name)
self.node_cmd(nodeid, f'dataset networkname {network_name}')

self.node_cmd(nodeid, f'dataset commit {dataset}')

def web(self) -> None:
"""
Open web browser for visualization.
Expand Down
7 changes: 6 additions & 1 deletion pylibs/unittests/test_commissioning.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,12 @@ def testRawSetup(self):
n1 = ns.add("router")
n2 = ns.add("router")
n3 = ns.add("router")
for id in (n1, n2, n3):

ns.config_dataset(n1, panid=0xface, network_name="test", networkkey="00112233445566778899aabbccddeeff")
ns.ifconfig_up(n1)
ns.thread_start(n1)

for id in (n2, n3):
ns.set_network_name(id, "test")
ns.set_panid(id, 0xface)
ns.set_networkkey(id, "00112233445566778899aabbccddeeff")
Expand Down
16 changes: 13 additions & 3 deletions simulation/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,7 @@ func (node *Node) String() string {
}

func (node *Node) SetupNetworkParameters(sim *Simulation) {
node.SetNetworkKey(node.S.NetworkKey())
node.SetPanid(node.S.Panid())
node.SetChannel(node.S.Channel())
node.ConfigActiveDataset(node.S.Channel(), node.S.NetworkKey(), node.S.Panid())
}

func (node *Node) Start() {
Expand Down Expand Up @@ -585,6 +583,18 @@ func (node *Node) GetSingleton() bool {
}
}

func (node *Node) ConfigActiveDataset(channel int, networkkey string, panid uint16) {
node.Command("dataset init new", DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset channel %d", channel), DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset extpanid %s", DefaultExtPanid), DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset meshlocalprefix %s", DefaultMeshLocalPrefix), DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset networkkey %s", networkkey), DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset networkname %s", DefaultNetworkName), DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset panid 0x%04x", panid), DefaultCommandTimeout)
node.Command(fmt.Sprintf("dataset pskc %s", DefaultPskc), DefaultCommandTimeout)
node.Command("dataset commit active", DefaultCommandTimeout)
}

func (node *Node) lineReader(reader io.Reader, uartType NodeUartType) {
// close the line channel after line reader routine exit
scanner := bufio.NewScanner(otoutfilter.NewOTOutFilter(bufio.NewReader(reader), node.String()))
Expand Down
15 changes: 9 additions & 6 deletions simulation/simulation_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,18 @@ package simulation
import "github.com/openthread/ot-ns/threadconst"

const (
DefaultNetworkName = "OTSIM"
DefaultNetworkKey = "00112233445566778899aabbccddeeff"
DefaultPanid = 0xface
DefaultChannel = 11
DefaultChannel = 11
DefaultChannelMask = 0x07fff800
DefaultExtPanid = "dead00beef00cafe"
DefaultMeshLocalPrefix = "fdde:ad00:beef:0::"
DefaultNetworkKey = "00112233445566778899aabbccddeeff"
DefaultNetworkName = "otns"
DefaultPanid = 0xface
DefaultPskc = "3aa55f91ca47d1e4e71a08cb35e91591"
DefaultSecurityPolicy = "672 onrc"
)

type Config struct {
NetworkName string
NetworkKey string
Panid uint16
Channel int
Expand All @@ -52,7 +56,6 @@ type Config struct {

func DefaultConfig() *Config {
return &Config{
NetworkName: DefaultNetworkName,
NetworkKey: DefaultNetworkKey,
Panid: DefaultPanid,
Channel: DefaultChannel,
Expand Down
2 changes: 1 addition & 1 deletion web/site/bindata.go

Large diffs are not rendered by default.

0 comments on commit d967477

Please sign in to comment.