How to build a Thread: Co-processor?

I tried to build the coprocessor using NCS 2.9.0, but it doesn’t seem to work.
Below is my project configuration,are there any additional parameters I need to set?

  • Hi,

    I have used the file you provided, but I still get an error

    ubuntu@ubuntu:~$ sudo docker network prune
    WARNING! This will remove all custom networks not used by at least one container.
    Are you sure you want to continue? [y/N] y
    Deleted Networks:
    otbr
    
    ubuntu@ubuntu:~$ sudo docker network create --ipv6 --subnet fd11:db8:1::/64 -o com.docker.network.bridge.name=otbr0 otbr
    e731fd46bee75b1c31afc2aa3fd0bf82138e9a0e75b725b5b1b9d5b36220e900
    ubuntu@ubuntu:~$ sudo sysctl net.ipv6.conf.otbr0.accept_ra_rt_info_max_plen=128
    net.ipv6.conf.otbr0.accept_ra_rt_info_max_plen = 128
    ubuntu@ubuntu:~$ sudo sysctl net.ipv6.conf.otbr0.accept_ra=2
    net.ipv6.conf.otbr0.accept_ra = 2
    ubuntu@ubuntu:~$ sudo modprobe ip6table_filter
    ubuntu@ubuntu:~$ sudo docker run -it --rm --privileged --name otbr --network otbr -p 8080:80 \
    --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" \
    --volume /dev/ttyACM0:/dev/radio nrfconnect/otbr:fbde28a --radio-url spinel+hdlc+uart:///dev/radio?uart-baudrate=1000000
    RADIO_URL: spinel+hdlc+uart:///dev/radio?uart-baudrate=1000000
    TREL_URL:
    TUN_INTERFACE_NAME: wpan0
    BACKBONE_INTERFACE: eth0
    NAT64_PREFIX: 64:ff9b::/96
    DEBUG_LEVEL: 7
    +++ dirname /app/script/server
    ++ cd /app/script/..
    ++ HAVE_SYSTEMCTL=0
    ++ have systemctl
    ++ command -v systemctl
    ++ HAVE_SERVICE=0
    ++ have service
    ++ command -v service
    ++ HAVE_SERVICE=1
    ++ [[ ! -n x ]]
    ++ echo 'Current platform is ubuntu'
    Current platform is ubuntu
    ++ with BORDER_ROUTING
    ++ local value
    +++ printenv BORDER_ROUTING
    ++ value=1
    ++ [[ -z 1 ]]
    ++ [[ 1 == 1 ]]
    ++ with DHCPV6_PD
    ++ local value
    +++ printenv DHCPV6_PD
    ++ value=
    ++ [[ -z '' ]]
    ++ [[ -f examples/platforms/ubuntu/default ]]
    ++ [[ '' == 1 ]]
    ++ with BORDER_ROUTING
    ++ local value
    +++ printenv BORDER_ROUTING
    ++ value=1
    ++ [[ -z 1 ]]
    ++ [[ 1 == 1 ]]
    ++ with NETWORK_MANAGER
    ++ local value
    +++ printenv NETWORK_MANAGER
    ++ value=
    ++ [[ -z '' ]]
    ++ [[ -f examples/platforms/ubuntu/default ]]
    ++ [[ '' == 1 ]]
    ++ STAGE_DIR=/app/stage
    ++ BUILD_DIR=/app/build
    ++ [[ -d /app/stage ]]
    ++ mkdir -v -p /app/stage
    mkdir: created directory '/app/stage'
    ++ [[ -d /app/build ]]
    ++ mkdir -v -p /app/build
    mkdir: created directory '/app/build'
    ++ export PATH=/app/stage/usr/bin:/app/stage/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    ++ PATH=/app/stage/usr/bin:/app/stage/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    +++ basename /app/script/server
    ++ TASKNAME=server
    ++ BEFORE_HOOK=examples/platforms/ubuntu/before_server
    ++ AFTER_HOOK=examples/platforms/ubuntu/after_server
    ++ [[ ! -f examples/platforms/ubuntu/before_server ]]
    ++ BEFORE_HOOK=/dev/null
    ++ [[ ! -f examples/platforms/ubuntu/after_server ]]
    ++ AFTER_HOOK=/dev/null
    + . script/_nat64
    ++ NAT64_SERVICE=openthread
    ++ TAYGA_DEFAULT=/etc/default/tayga
    ++ TAYGA_CONF=/etc/tayga.conf
    ++ TAYGA_IPV4_ADDR=192.168.255.1
    ++ TAYGA_IPV6_ADDR=fdaa:bb:1::1
    ++ TAYGA_TUN_V6_ADDR=fdaa:bb:1::2
    ++ NAT64_PREFIX=64:ff9b::/96
    ++ DYNAMIC_POOL=192.168.255.0/24
    ++ NAT44_SERVICE=/etc/init.d/otbr-nat44
    ++ WLAN_IFNAMES=eth0
    ++ THREAD_IF=wpan0
    + . script/_dns64
    ++ BIND_CONF_OPTIONS=/etc/bind/named.conf.options
    ++ NAT64_PREFIX=64:ff9b::/96
    ++ DNS64_NAMESERVER_ADDR=127.0.0.1
    +++ echo 64:ff9b::/96
    +++ tr '"/"' '"/"'
    ++ DNS64_CONF='dns64 64:ff9b::/96 { clients { thread; }; recursive-only yes; };'
    ++ without NAT64
    ++ with NAT64
    ++ local value
    +++ printenv NAT64
    ++ value=1
    ++ [[ -z 1 ]]
    ++ [[ 1 == 1 ]]
    ++ without DNS64
    ++ with DNS64
    ++ local value
    +++ printenv DNS64
    ++ value=0
    ++ [[ -z 0 ]]
    ++ [[ 0 == 1 ]]
    ++ '[' ubuntu = raspbian ']'
    ++ '[' ubuntu = beagleboneblack ']'
    ++ '[' ubuntu = ubuntu ']'
    ++ RESOLV_CONF_HEAD=/etc/resolvconf/resolv.conf.d/head
    + . script/_firewall
    ++ FIREWALL_SERVICE=/etc/init.d/otbr-firewall
    ++ sudo modprobe ip6table_filter
    sudo: modprobe: command not found
    ++ true
    ++ FIREWALL=1
    + OTBR_MDNS=mDNSResponder
    + OT_BACKBONE_CI=0
    + REFERENCE_DEVICE=0
    + main
    + [[ '' == \s\h\u\t\d\o\w\n ]]
    + startup
    + . /dev/null
    + sudo sysctl --system
    * Applying /etc/sysctl.d/10-console-messages.conf ...
    kernel.printk = 4 4 1 7
    * Applying /etc/sysctl.d/10-ipv6-privacy.conf ...
    net.ipv6.conf.all.use_tempaddr = 2
    net.ipv6.conf.default.use_tempaddr = 2
    * Applying /etc/sysctl.d/10-kernel-hardening.conf ...
    kernel.kptr_restrict = 1
    * Applying /etc/sysctl.d/10-link-restrictions.conf ...
    fs.protected_hardlinks = 1
    fs.protected_symlinks = 1
    * Applying /etc/sysctl.d/10-magic-sysrq.conf ...
    kernel.sysrq = 176
    * Applying /etc/sysctl.d/10-network-security.conf ...
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.tcp_syncookies = 1
    * Applying /etc/sysctl.d/10-ptrace.conf ...
    kernel.yama.ptrace_scope = 1
    * Applying /etc/sysctl.d/10-zeropage.conf ...
    vm.mmap_min_addr = 32768
    * Applying /etc/sysctl.d/60-otbr-accept-ra.conf ...
    net.ipv6.conf.eth0.accept_ra = 2
    net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 64
    * Applying /etc/sysctl.d/60-otbr-ip-forward.conf ...
    net.ipv6.conf.all.forwarding = 1
    net.ipv4.ip_forward = 1
    * Applying /etc/sysctl.conf ...
    + nat64_start
    + with NAT64
    + local value
    ++ printenv NAT64
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + '[' openthread = tayga ']'
    + nat44_start
    + with DOCKER
    + local value
    ++ printenv DOCKER
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + service otbr-nat44 start
    + dns64_start
    + with NAT64
    + local value
    ++ printenv NAT64
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + with DNS64
    + local value
    ++ printenv DNS64
    + value=0
    + [[ -z 0 ]]
    + [[ 0 == 1 ]]
    + return 0
    + firewall_start
    + with FIREWALL
    + local value
    ++ printenv FIREWALL
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + with DOCKER
    + local value
    ++ printenv DOCKER
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + service otbr-firewall start
    + case "$1" in
    + firewall_start
    + firewall_stop
    + ip6tables -C FORWARD -o wpan0 -j OTBR_FORWARD_INGRESS
    ip6tables v1.6.1: Couldn't load target `OTBR_FORWARD_INGRESS':No such file or directory
    
    Try `ip6tables -h' or 'ip6tables --help' for more information.
    + ip6tables -L OTBR_FORWARD_INGRESS
    ip6tables: No chain/target/match by that name.
    + ipset_destroy_if_exist otbr-ingress-deny-src
    + ipset list otbr-ingress-deny-src
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset_destroy_if_exist otbr-ingress-deny-src-swap
    + ipset list otbr-ingress-deny-src-swap
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset_destroy_if_exist otbr-ingress-allow-dst
    + ipset list otbr-ingress-allow-dst
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset_destroy_if_exist otbr-ingress-allow-dst-swap
    + ipset list otbr-ingress-allow-dst-swap
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset create -exist otbr-ingress-deny-src hash:net family inet6
    + ipset create -exist otbr-ingress-deny-src-swap hash:net family inet6
    + ipset create -exist otbr-ingress-allow-dst hash:net family inet6
    + ipset create -exist otbr-ingress-allow-dst-swap hash:net family inet6
    + ip6tables -N OTBR_FORWARD_INGRESS
    + ip6tables -I FORWARD 1 -o wpan0 -j OTBR_FORWARD_INGRESS
    + ip6tables -A OTBR_FORWARD_INGRESS -m pkttype --pkt-type unicast -i wpan0 -j DROP
    + ip6tables -A OTBR_FORWARD_INGRESS -m set --match-set otbr-ingress-deny-src src -j DROP
    + ip6tables -A OTBR_FORWARD_INGRESS -m set --match-set otbr-ingress-allow-dst dst -j ACCEPT
    + ip6tables -A OTBR_FORWARD_INGRESS -m pkttype --pkt-type unicast -j DROP
    + ip6tables -A OTBR_FORWARD_INGRESS -j ACCEPT
    + start_service rsyslog
    + local service_name=rsyslog
    + [[ 0 == 1 ]]
    + [[ 1 == 1 ]]
    + sudo service rsyslog status
     * rsyslogd is not running
    + sudo service rsyslog start
     * Starting enhanced syslogd rsyslogd                                                                                                                                                                                                 [ OK ]
    + start_service dbus
    + local service_name=dbus
    + [[ 0 == 1 ]]
    + [[ 1 == 1 ]]
    + sudo service dbus status
     * dbus is not running
    + sudo service dbus start
     * Starting system message bus dbus                                                                                                                                                                                                   [ OK ]
    + [[ mDNSResponder == \a\v\a\h\i ]]
    + [[ 0 == 1 ]]
    + [[ 0 == 1 ]]
    + have service
    + command -v service
    + sudo service mdns status
    Usage: /etc/init.d/mDNS {start|stop|reload|restart}
    + sudo service mdns start
    Starting Apple Darwin Multicast DNS / DNS Service Discovery daemon: mdnsd.
    + without WEB_GUI
    + with WEB_GUI
    + local value
    ++ printenv WEB_GUI
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + start_service otbr-web
    + local service_name=otbr-web
    + [[ 0 == 1 ]]
    + [[ 1 == 1 ]]
    + sudo service otbr-web status
     * otbr-web is not running
    + sudo service otbr-web start
     * Starting thread web interface otbr-web                                                                                                                                                                                             [ OK ]
    + start_service otbr-agent
    + local service_name=otbr-agent
    + [[ 0 == 1 ]]
    + [[ 1 == 1 ]]
    + sudo service otbr-agent status
     * otbr-agent is not running
    + sudo service otbr-agent start
     * Starting thread border agent otbr-agent                                                                                                                                                                                            [ OK ]
    + . /dev/null
    Jun 23 07:10:04 eb3f40287101 mDNSResponder: Default: mDNSResponder (Engineering Build) (Oct 21 2024 08:52:04) starting
    Jun 23 07:10:05 eb3f40287101 rsyslogd: rsyslogd's groupid changed to 101
    Jun 23 07:10:05 eb3f40287101 rsyslogd: rsyslogd's userid changed to 101
    Jun 23 07:10:05 eb3f40287101 rsyslogd:  [origin software="rsyslogd" swVersion="8.32.0" x-pid="98" x-info="http://www.rsyslog.com"] start
    Jun 23 07:10:06 eb3f40287101 otbr-web[172]: [INFO]-WEB-----: Running 0.3.0-thread-reference-20230710-394-gfbde28a0596-dirty
    Jun 23 07:10:06 eb3f40287101 otbr-web[172]: [INFO]-WEB-----: Border router web started on wpan0
    Jun 23 07:10:06 eb3f40287101 otbr-web[172]: [ERR ]-WEB-----: OpenThread daemon is not running.
    Jun 23 07:10:07 eb3f40287101 otbr-agent: [NOTE]-AGENT---: Backbone interface: eth0
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: [NOTE]-AGENT---: Running 0.3.0-thread-reference-20230710-394-gfbde28a0596-dirty
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: [NOTE]-AGENT---: Thread version: 1.4.0
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: [NOTE]-AGENT---: Thread interface: wpan0
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: [NOTE]-AGENT---: Radio URL: spinel+hdlc+uart:///dev/radio?uart-baudrate=1000000
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: [NOTE]-ILS-----: Infra link selected: eth0
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: [INFO]-RCP_HOS-: OpenThread log level changed to 5
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: 49d.17:05:34.646 [C] P-HdlcIntface-: Radio file '/dev/radio' not supported
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: 49d.17:05:34.649 [C] P-HdlcIntface-: Radio file '/dev/radio' not supported
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: 49d.17:05:34.649 [C] Platform------: Init() at spinel_driver.cpp:70: Failure
    Jun 23 07:10:07 eb3f40287101 otbr-agent[199]: 49d.17:05:34.649 [C] P-HdlcIntface-: Radio file '/dev/radio' not supported
    Jun 23 07:10:37 eb3f40287101 otbr-web[172]: [ERR ]-WEB-----: OpenThread daemon is not running.
    Jun 23 07:10:37 eb3f40287101 otbr-web[172]: [ERR ]-WEB-----: Wpan service error: 13
    

  • Hi,

    If I build coprocessor using 2.4.1...

    Last login: Tue Jun 24 00:04:21 2025 from 192.168.50.12
    ubuntu@ubuntu:~$ sudo docker network prune
    WARNING! This will remove all custom networks not used by at least one container                                                                                                                                                             .
    Are you sure you want to continue? [y/N] y
    Deleted Networks:
    otbr
    
    ubuntu@ubuntu:~$ sudo docker network create --ipv6 --subnet fd11:db8:1::/64 -o c                                                                                                                                                             om.docker.network.bridge.name=otbr0 otbr
    b79e9ec801bd121b58d9b7e8fde20f82c69b8e3e561c1c969e9a9eb6934bf1c1
    ubuntu@ubuntu:~$ sudo sysctl net.ipv6.conf.otbr0.accept_ra_rt_info_max_plen=128
    net.ipv6.conf.otbr0.accept_ra_rt_info_max_plen = 128
    ubuntu@ubuntu:~$ sudo sysctl net.ipv6.conf.otbr0.accept_ra=2
    net.ipv6.conf.otbr0.accept_ra = 2
    ubuntu@ubuntu:~$ sudo modprobe ip6table_filter
    ubuntu@ubuntu:~$ sudo docker run -it --rm --privileged --name otbr --network otbr -p 8080:80 --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv6.conf.all.forwarding=1" -e NAT64=0 --volume /dev/ttyACM0:/dev/ttyACM0 nrfconnect/otbr:9185bda --radio-url spinel+hdlc+uart:///dev/ttyACM0
    RADIO_URL: spinel+hdlc+uart:///dev/ttyACM0
    TREL_URL:
    TUN_INTERFACE_NAME: wpan0
    BACKBONE_INTERFACE: eth0
    NAT64_PREFIX: 64:ff9b::/96
    +++ dirname /app/script/server
    ++ cd /app/script/..
    ++ [[ ! -n x ]]
    ++ echo 'Current platform is ubuntu'
    Current platform is ubuntu
    ++ with BORDER_ROUTING
    ++ local value
    +++ printenv BORDER_ROUTING
    ++ value=1
    ++ [[ -z 1 ]]
    ++ [[ 1 == 1 ]]
    ++ with DHCPV6_PD
    ++ local value
    +++ printenv DHCPV6_PD
    ++ value=
    ++ [[ -z '' ]]
    ++ [[ -f examples/platforms/ubuntu/default ]]
    ++ [[ '' == 1 ]]
    ++ with BORDER_ROUTING
    ++ local value
    +++ printenv BORDER_ROUTING
    ++ value=1
    ++ [[ -z 1 ]]
    ++ [[ 1 == 1 ]]
    ++ with NETWORK_MANAGER
    ++ local value
    +++ printenv NETWORK_MANAGER
    ++ value=
    ++ [[ -z '' ]]
    ++ [[ -f examples/platforms/ubuntu/default ]]
    ++ [[ '' == 1 ]]
    ++ STAGE_DIR=/app/stage
    ++ BUILD_DIR=/app/build
    ++ [[ -d /app/stage ]]
    ++ mkdir -v -p /app/stage
    mkdir: created directory '/app/stage'
    ++ [[ -d /app/build ]]
    ++ mkdir -v -p /app/build
    mkdir: created directory '/app/build'
    ++ export PATH=/app/stage/usr/bin:/app/stage/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    ++ PATH=/app/stage/usr/bin:/app/stage/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    +++ basename /app/script/server
    ++ TASKNAME=server
    ++ BEFORE_HOOK=examples/platforms/ubuntu/before_server
    ++ AFTER_HOOK=examples/platforms/ubuntu/after_server
    ++ [[ ! -f examples/platforms/ubuntu/before_server ]]
    ++ BEFORE_HOOK=/dev/null
    ++ [[ ! -f examples/platforms/ubuntu/after_server ]]
    ++ AFTER_HOOK=/dev/null
    + . script/_nat64
    ++ NAT64_SERVICE=openthread
    ++ TAYGA_DEFAULT=/etc/default/tayga
    ++ TAYGA_CONF=/etc/tayga.conf
    ++ TAYGA_IPV4_ADDR=192.168.255.1
    ++ TAYGA_IPV6_ADDR=fdaa:bb:1::1
    ++ TAYGA_TUN_V6_ADDR=fdaa:bb:1::2
    ++ NAT64_PREFIX=64:ff9b::/96
    ++ DYNAMIC_POOL=192.168.255.0/24
    ++ NAT44_SERVICE=/etc/init.d/otbr-nat44
    ++ WLAN_IFNAMES=eth0
    + . script/_dns64
    ++ BIND_CONF_OPTIONS=/etc/bind/named.conf.options
    ++ NAT64_PREFIX=64:ff9b::/96
    ++ DNS64_NAMESERVER_ADDR=127.0.0.1
    +++ echo 64:ff9b::/96
    +++ tr '"/"' '"/"'
    ++ DNS64_CONF='dns64 64:ff9b::/96 { clients { thread; }; recursive-only yes; };'
    ++ without NAT64
    ++ with NAT64
    ++ local value
    +++ printenv NAT64
    ++ value=0
    ++ [[ -z 0 ]]
    ++ [[ 0 == 1 ]]
    ++ '[' ubuntu = raspbian ']'
    ++ '[' ubuntu = beagleboneblack ']'
    ++ '[' ubuntu = ubuntu ']'
    ++ RESOLV_CONF_HEAD=/etc/resolvconf/resolv.conf.d/head
    + . script/_firewall
    ++ FIREWALL_SERVICE=/etc/init.d/otbr-firewall
    ++ sudo modprobe ip6table_filter
    sudo: modprobe: command not found
    ++ true
    + main
    + [[ '' == \s\h\u\t\d\o\w\n ]]
    + startup
    + . /dev/null
    + sudo sysctl --system
    * Applying /etc/sysctl.d/10-console-messages.conf ...
    kernel.printk = 4 4 1 7
    * Applying /etc/sysctl.d/10-ipv6-privacy.conf ...
    net.ipv6.conf.all.use_tempaddr = 2
    net.ipv6.conf.default.use_tempaddr = 2
    * Applying /etc/sysctl.d/10-kernel-hardening.conf ...
    kernel.kptr_restrict = 1
    * Applying /etc/sysctl.d/10-link-restrictions.conf ...
    fs.protected_hardlinks = 1
    fs.protected_symlinks = 1
    * Applying /etc/sysctl.d/10-magic-sysrq.conf ...
    kernel.sysrq = 176
    * Applying /etc/sysctl.d/10-network-security.conf ...
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.tcp_syncookies = 1
    * Applying /etc/sysctl.d/10-ptrace.conf ...
    kernel.yama.ptrace_scope = 1
    * Applying /etc/sysctl.d/10-zeropage.conf ...
    vm.mmap_min_addr = 32768
    * Applying /etc/sysctl.d/60-otbr-accept-ra.conf ...
    net.ipv6.conf.eth0.accept_ra = 2
    net.ipv6.conf.eth0.accept_ra_rt_info_max_plen = 64
    * Applying /etc/sysctl.d/60-otbr-ip-forward.conf ...
    net.ipv6.conf.all.forwarding = 1
    net.ipv4.ip_forward = 1
    * Applying /etc/sysctl.conf ...
    + nat64_start
    + with NAT64
    + local value
    ++ printenv NAT64
    + value=0
    + [[ -z 0 ]]
    + [[ 0 == 1 ]]
    + return 0
    + dns64_start
    + with NAT64
    + local value
    ++ printenv NAT64
    + value=0
    + [[ -z 0 ]]
    + [[ 0 == 1 ]]
    + return 0
    + firewall_start
    + with DOCKER
    + local value
    ++ printenv DOCKER
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + service otbr-firewall start
    + case "$1" in
    + firewall_start
    + firewall_stop
    + ip6tables -C FORWARD -o wpan0 -j OTBR_FORWARD_INGRESS
    ip6tables v1.6.1: Couldn't load target `OTBR_FORWARD_INGRESS':No such file or directory
    
    Try `ip6tables -h' or 'ip6tables --help' for more information.
    + ip6tables -L OTBR_FORWARD_INGRESS
    ip6tables: No chain/target/match by that name.
    + ipset_destroy_if_exist otbr-ingress-deny-src
    + ipset list otbr-ingress-deny-src
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset_destroy_if_exist otbr-ingress-deny-src-swap
    + ipset list otbr-ingress-deny-src-swap
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset_destroy_if_exist otbr-ingress-allow-dst
    + ipset list otbr-ingress-allow-dst
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset_destroy_if_exist otbr-ingress-allow-dst-swap
    + ipset list otbr-ingress-allow-dst-swap
    ipset v6.34: Kernel support protocol versions 6-7 while userspace supports protocol versions 6-6
    The set with the given name does not exist
    + ipset create -exist otbr-ingress-deny-src hash:net family inet6
    + ipset create -exist otbr-ingress-deny-src-swap hash:net family inet6
    + ipset create -exist otbr-ingress-allow-dst hash:net family inet6
    + ipset create -exist otbr-ingress-allow-dst-swap hash:net family inet6
    + ip6tables -N OTBR_FORWARD_INGRESS
    + ip6tables -I FORWARD 1 -o wpan0 -j OTBR_FORWARD_INGRESS
    + ip6tables -A OTBR_FORWARD_INGRESS -m pkttype --pkt-type unicast -i wpan0 -j DROP
    + ip6tables -A OTBR_FORWARD_INGRESS -m set --match-set otbr-ingress-deny-src src -j DROP
    + ip6tables -A OTBR_FORWARD_INGRESS -m set --match-set otbr-ingress-allow-dst dst -j ACCEPT
    + ip6tables -A OTBR_FORWARD_INGRESS -m pkttype --pkt-type unicast -j DROP
    + ip6tables -A OTBR_FORWARD_INGRESS -j ACCEPT
    + have systemctl
    + command -v systemctl
    + have service
    + command -v service
    + sudo service rsyslog status
     * rsyslogd is not running
    + sudo service rsyslog start
     * Starting enhanced syslogd rsyslogd                                                                                                                                                                                                 [ OK ]
    + sudo service dbus status
     * dbus is not running
    + sudo service dbus start
     * Starting system message bus dbus                                                                                                                                                                                                   [ OK ]
    + sudo service mdns status
    Usage: /etc/init.d/mDNS {start|stop|reload|restart}
    + sudo service mdns start
    Starting Apple Darwin Multicast DNS / DNS Service Discovery daemon: mdnsd.
    + sudo service avahi-daemon status
    Avahi mDNS/DNS-SD Daemon is not running
    + sudo service avahi-daemon start
     * Starting Avahi mDNS/DNS-SD Daemon avahi-daemon                                                                                                                                                                                     [ OK ]
    + sudo service otbr-agent status
     * otbr-agent is not running
    + sudo service otbr-agent start
     * Starting thread border agent otbr-agent                                                                                                                                                                                            [ OK ]
    + without WEB_GUI
    + with WEB_GUI
    + local value
    ++ printenv WEB_GUI
    + value=1
    + [[ -z 1 ]]
    + [[ 1 == 1 ]]
    + sudo service otbr-web status
     * otbr-web is not running
    + sudo service otbr-web start
     * Starting thread web interface otbr-web                                                                                                                                                                                             [ OK ]
    + . /dev/null
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: Joining mDNS multicast group on interface lo.IPv4 with address 127.0.0.1.
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: New relevant interface lo.IPv4 for mDNS.
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: Network interface enumeration completed.
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: Registering new address record for fd11:db8:1::2 on eth0.*.
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: Registering new address record for 172.20.0.2 on eth0.IPv4.
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: Registering new address record for ::1 on lo.*.
    Jun 24 00:10:20 23fdc2e10cad avahi-daemon[151]: Registering new address record for 127.0.0.1 on lo.IPv4.
    Jun 24 00:10:20 23fdc2e10cad rsyslogd: rsyslogd's groupid changed to 101
    Jun 24 00:10:20 23fdc2e10cad rsyslogd: rsyslogd's userid changed to 101
    Jun 24 00:10:20 23fdc2e10cad rsyslogd:  [origin software="rsyslogd" swVersion="8.32.0" x-pid="84" x-info="http://www.rsyslog.com"] start
    Jun 24 00:10:21 23fdc2e10cad avahi-daemon[151]: Server startup complete. Host name is 23fdc2e10cad.local. Local service cookie is 1309939092.
    Jun 24 00:10:22 23fdc2e10cad otbr-agent: [NOTE]-AGENT---: Backbone interface: eth0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [NOTE]-AGENT---: Running 0.3.0-9185bdaaf4-dirty
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [NOTE]-AGENT---: Thread version: 1.3.0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [NOTE]-AGENT---: Thread interface: wpan0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [NOTE]-AGENT---: Radio URL: spinel+hdlc+uart:///dev/ttyACM0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [NOTE]-ILS-----: Infra link selected: eth0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-NCP-----: OpenThread log level changed to 5
    Jun 24 00:10:22 23fdc2e10cad otbr-web[207]: [INFO]-WEB-----: Running 0.3.0-9185bdaaf4-dirty
    Jun 24 00:10:22 23fdc2e10cad otbr-web[207]: [INFO]-WEB-----: Border router web started on wpan0
    Jun 24 00:10:22 23fdc2e10cad otbr-web[207]: [ERR ]-WEB-----: OpenThread daemon is not running.
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 49d.17:06:33.677 [I] Platform------: RCP reset: RESET_POWER_ON
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 49d.17:06:33.684 [I] Platform------: Software reset RCP successfully
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 49d.17:06:33.684 [I] Platform------: RCP reset: RESET_POWER_ON
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 49d.17:06:33.689 [I] Platform------: Backbone interface is configured to eth0 (2)
    Jun 24 00:10:22 23fdc2e10cad kernel: [  226.418612] tun: Universal TUN/TAP device driver, 1.6
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 49d.17:06:33.713 [I] Platform------: [netif] Sent request#1 to set addr_gen_mode to 1
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.021 [I] ChildSupervsn-: Timeout: 0 -> 190
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.029 [I] InfraIf-------: Init infra netif 2
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.030 [N] BorderRouter--: No valid /48 BR ULA prefix found in settings, generating new one
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.037 [I] Settings------: Saved BrUlaPrefix fd88:d3b2:12d1::/48
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.038 [N] BorderRouter--: BR ULA prefix: fd88:d3b2:12d1::/48 (generated)
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.038 [I] BorderRouter--: Generated local OMR prefix: fd88:d3b2:12d1:1::/64
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.038 [I] BorderRouter--: Generated local NAT64 prefix: fd88:d3b2:12d1:2:0:0::/96
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.038 [N] BorderRouter--: Local on-link prefix: fdde:ad00:beef:cafe::/64
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.038 [I] InfraIf-------: State changed: NOT RUNNING -> RUNNING
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.039 [I] Platform------: Got nameserver #0: 127.0.0.11
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-UTILS---: Set state callback: OK
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.040 [I] Nat64---------: NAT64 translator is now NotRunning
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-BA------: Publish meshcop service OpenThread BorderRouter #3EEB._meshcop._udp.local.
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.047 [I] Settings------: Saved BorderAgentId {id:6d4aebb211aeed8645edb4ec520f593c}
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-MDNS----: Registering new service OpenThread BorderRouter #3EEB._meshcop._udp.local, serviceRef = (nil)
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-ADPROXY-: Publish all hosts and services
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-ADPROXY-: Started
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-DPROXY--: Started
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-BA------: Start Thread Border Agent: OK
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.049 [I] BbrLocal------: Add Domain Prefix: ::/0, NotFound
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.049 [I] BbrLocal------: Add BBR Service: seqno (80), delay (5s), timeout (3600s), InvalidState
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-APP-----: Thread Border Router started on AIL eth0.
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.052 [I] Notifier------: StateChanged (0x42038200) [NetData PanId NetName ExtPanId BbrState (unknown)]
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.052 [I] Bbr-----------: Start listening on port 61631
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.053 [I] Bbr-----------: Backbone TMF subscribes ff32:40:fdde:ad00:beef:0:0:3: OK
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.053 [I] BbrManager----: Start Backbone TMF agent: OK
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.065 [I] Platform------: Execute command `ipset flush otbr-ingress-allow-dst-swap` = 0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.078 [I] Platform------: Execute command `ipset flush otbr-ingress-deny-src-swap` = 0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.091 [I] Platform------: Execute command `ipset add otbr-ingress-deny-src-swap fdde:ad00:beef:0::/64 -exist` = 0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.104 [I] Platform------: Execute command `ipset swap otbr-ingress-deny-src-swap otbr-ingress-deny-src` = 0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.117 [I] Platform------: Execute command `ipset swap otbr-ingress-allow-dst-swap otbr-ingress-allow-dst` = 0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.117 [I] Platform------: MulticastRoutingManager: Disable: OK
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [INFO]-BA------: Publish meshcop service OpenThread BorderRouter #3EEB._meshcop._udp.local.
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: [DEBG]-BBA-----: BackboneAgent: HandleBackboneRouterState: state=1, mBackboneRouterState=0
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.117 [I] RouterTable---: Route table
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.119 [I] Platform------: [netif] Host netif is down
    Jun 24 00:10:22 23fdc2e10cad otbr-agent[179]: 00:00:00.120 [I] Platform------: [netif] Succeeded to process request#1
    Jun 24 00:10:23 23fdc2e10cad otbr-agent[179]: [INFO]-MDNS----: Received reply for service OpenThread BorderRouter #3EEB._meshcop._udp., serviceRef = 0xaaab1614aa70
    Jun 24 00:10:23 23fdc2e10cad otbr-agent[179]: [INFO]-MDNS----: Successfully registered service OpenThread BorderRouter #3EEB._meshcop._udp.
    Jun 24 00:10:23 23fdc2e10cad otbr-agent[179]: [INFO]-BA------: Result of publish meshcop service OpenThread BorderRouter #3EEB._meshcop._udp.local: OK
    Jun 24 00:10:23 23fdc2e10cad otbr-agent[179]: [INFO]-BA------: Result of publish meshcop service OpenThread BorderRouter #3EEB._meshcop._udp.local: OK
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for fd11:db8:1::2 on eth0.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 172.20.0.2 on eth0.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 127.0.0.1 on lo.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Host name conflict, retrying with 23fdc2e10cad-2
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for fd11:db8:1::2 on eth0.*.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for 172.20.0.2 on eth0.IPv4.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for ::1 on lo.*.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for 127.0.0.1 on lo.IPv4.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 172.20.0.2 on eth0.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for ::1 on lo.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 127.0.0.1 on lo.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Host name conflict, retrying with 23fdc2e10cad-3
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for fd11:db8:1::2 on eth0.*.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for 172.20.0.2 on eth0.IPv4.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for ::1 on lo.*.
    Jun 24 00:10:25 23fdc2e10cad avahi-daemon[151]: Registering new address record for 127.0.0.1 on lo.IPv4.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for fd11:db8:1::2 on eth0.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for ::1 on lo.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 127.0.0.1 on lo.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Host name conflict, retrying with 23fdc2e10cad-4
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Registering new address record for fd11:db8:1::2 on eth0.*.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Registering new address record for 172.20.0.2 on eth0.IPv4.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Registering new address record for ::1 on lo.*.
    Jun 24 00:10:27 23fdc2e10cad avahi-daemon[151]: Registering new address record for 127.0.0.1 on lo.IPv4.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for fd11:db8:1::2 on eth0.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for ::1 on lo.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 127.0.0.1 on lo.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Host name conflict, retrying with 23fdc2e10cad-5
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Registering new address record for fd11:db8:1::2 on eth0.*.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Registering new address record for 172.20.0.2 on eth0.IPv4.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Registering new address record for ::1 on lo.*.
    Jun 24 00:10:28 23fdc2e10cad avahi-daemon[151]: Registering new address record for 127.0.0.1 on lo.IPv4.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for fd11:db8:1::2 on eth0.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for ::1 on lo.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Withdrawing address record for 127.0.0.1 on lo.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Host name conflict, retrying with 23fdc2e10cad-6
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Registering new address record for fd11:db8:1::2 on eth0.*.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Registering new address record for 172.20.0.2 on eth0.IPv4.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Registering new address record for ::1 on lo.*.
    Jun 24 00:10:29 23fdc2e10cad avahi-daemon[151]: Registering new address record for 127.0.0.1 on lo.IPv4.
    Jun 24 00:10:30 23fdc2e10cad avahi-daemon[151]: Server startup complete. Host name is 23fdc2e10cad-6.local. Local service cookie is 1309939092.
    Jun 24 00:10:30 23fdc2e10cad mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.20.0.2:5353   22 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.8.b.d.0.1.1.d.f.ip6.arpa. PTR 23fdc2e10cad-6.local.
    Jun 24 00:10:30 23fdc2e10cad mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding   20 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.8.B.D.0.1.1.D.F.ip6.arpa. PTR 23fdc2e10cad.local.
    Jun 24 00:10:30 23fdc2e10cad mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.20.0.2:5353   22 2.0.20.172.in-addr.arpa. PTR 23fdc2e10cad-6.local.
    Jun 24 00:10:30 23fdc2e10cad mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding   20 2.0.20.172.in-addr.arpa. PTR 23fdc2e10cad.local.
    

Related