1# OpenThread CLI - SRP (Service Registration Protocol) 2 3## Quick Start 4 5### Start SRP Server 6 7Start the SRP Server node: 8 9```bash 10./output/simulation/bin/ot-cli-ftd 1 11``` 12 13Setup a Thread network and start the SRP Server: 14 15```bash 16> dataset init new 17Done 18> dataset 19Active Timestamp: 1 20Channel: 22 21Channel Mask: 0x07fff800 22Ext PAN ID: 8d6ed7a05a28fb3b 23Mesh Local Prefix: fded:5114:8263:1fe1::/64 24Network Key: 7fcbae4153cc2955c28440c15d4d4219 25Network Name: OpenThread-f7af 26PAN ID: 0xf7af 27PSKc: b658e40f174e3a11be149b302ef07a0f 28Security Policy: 672, onrc 29Done 30> dataset commit active 31Done 32> ifconfig up 33Done 34> thread start 35Done 36> state 37leader 38Done 39>ipaddr 40fded:5114:8263:1fe1:0:ff:fe00:fc00 41fded:5114:8263:1fe1:0:ff:fe00:c000 42fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 43fe80:0:0:0:a8cd:6e23:df3d:4193 44Done 45> srp server enable 46Done 47``` 48 49### Start SRP Client 50 51Start the SRP Client node: 52 53```bash 54./output/simulation/bin/ot-cli-ftd 2 55``` 56 57Join the Thread Network and register a `_ipps._tcp` service: 58 59```bash 60> dataset networkkey 7fcbae4153cc2955c28440c15d4d4219 61Done 62> dataset commit active 63Done 64> ifconfig up 65Done 66> thread start 67Done 68> state 69child 70Done 71> ipaddr 72fded:5114:8263:1fe1:0:ff:fe00:c001 73fded:5114:8263:1fe1:44f9:cc06:4a2d:534 74fe80:0:0:0:38dd:fdf7:5fd:24e 75Done 76> srp client host name my-host 77Done 78> srp client host address fded:5114:8263:1fe1:44f9:cc06:4a2d:534 79Done 80> srp client service add my-service _ipps._tcp 12345 81Done 82> srp client autostart enable 83Done 84``` 85 86The last command enables the auto-start mode on the client which then monitors the network data to discover available SRP servers within the Thread network and automatically starts the client. 87 88Alternatively, the client can be started manually using the `srp client start`. 89 90The SRP Server listening UDP port (which is `c002`(`49154`) in the example below) can be found from the Server Data (listed by the `netdata show` command). 91 92Make sure the SRP Server address & port are used for the `srp client start` command. 93 94```bash 95> netdata show 96Prefixes: 97Routes: 98Services: 9944970 5d c002 s 8400 100Done 101> srp client start fded:5114:8263:1fe1:68bc:ec03:c1ad:9325 49154 102Done 103``` 104 105### Verify the service status 106 107Check if the host and service has been successfully registered on the client node: 108 109```bash 110> srp client host 111name:"my-host", state:Registered, addrs:[fded:5114:8263:1fe1:44f9:cc06:4a2d:534] 112Done 113> srp client service 114instance:"my-service", name:"_ipps._tcp", state:Registered, port:12345, priority:0, weight:0 115Done 116``` 117 118Make sure it shows `state:Registered` for both host and service commands. 119 120Check the host & service on the server node: 121 122```bash 123> srp server host 124my-host.default.service.arpa. 125 deleted: false 126 addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534] 127Done 128> srp server service 129my-service._ipps._tcp.default.service.arpa. 130 deleted: false 131 port: 12345 132 priority: 0 133 weight: 0 134 ttl: 7200 135 lease: 7200 136 key-lease: 1209600 137 TXT: [] 138 host: my-host.default.service.arpa. 139 addresses: [fded:5114:8263:1fe1:44f9:cc06:4a2d:534] 140Done 141``` 142 143Make sure it shows `deleted: false` for both host and service commands. 144 145### Remove the service 146 147A service can be removed through the client node: 148 149```bash 150> srp client service remove my-service _ipps._tcp 151Done 152``` 153 154Confirm on the server node that the service has been removed: 155 156```bash 157> srp server service 158my-service._ipps._tcp.default.service.arpa. 159 deleted: true 160Done 161``` 162 163The service entry is listed because the name of service is not removed. 164 165### Remove the host and service names 166 167A host and service, along with their names, can be removed through the client node: 168 169```bash 170> srp client host remove 1 171Done 172``` 173 174Confirm on the server node that no host or service entries are listed: 175 176```bash 177> srp server host 178Done 179> srp server service 180Done 181> 182``` 183 184## CLI Reference 185 186- [SRP Client CLI Reference](README_SRP_CLIENT.md) 187- [SRP Server CLI Reference](README_SRP_SERVER.md) 188