If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.
Property:SSDP
BoxMatrix >> Lexicon >> Network-Protocols >> SSDP | @ BoxMatrix - IRC-Chat - Translate: de es fr it nl pl |
News | Selectors | Models | Accessories | Components | Environment | Config | Commands | System | Webif | Software | Develop | Lexicon | Community | Project | Media |
Computer | FRITZ | I18N | Telephony | Smarthome | Internet | Protocols | Multimedia | Formats | Hardware | Software | Research |
Protocol
Protocol: | SSDP | Wiki | Freetz | IPPF | whmf | AVM | Web |
Short for: | Simple Service Discovery Protocol | ||||||
Location: | Lexicon >> Network-Protocols | ||||||
Weblinks: | Wikipedia.int - Wikipedia.de - UPnP-DeviceArchitecture - ms-ssdp | ||||||
Description: | UPnP discovery protocol |
Goto: Examples - FRITZ!OS - SMW-Browser
Details
SSDP is the protocol used to announce UPnP devices and services.
It uses HTTP requests with an empty body and the request methods M-SEARCH
(poll) or NOTIFY
(announce).
These requests are sent from Port-1900-udp to the same port on IPv4 or IPv6 multicast addresses:
239.255.255.250
- IPv4 site-localff02::c
- IPv6 link-localff05::c
- IPv6 site-localff08::c
- IPv6 organization-localff0e::c
- IPv6 global
M-SEARCH
requests are used to search / poll the multicast group for a specific device type.
Each NOTIFY
request announces one logical UPnP device or service. A physical device like a router can have multiple logical
UPnP root devices, each of which can provide multiple devices and services.
FRITZ!OS
Depending on the model, firmware version and activated features FRITZ!OS announces these logical UPnP root devices:
aha
- aha.xml - served by aha (7272 fw 6,83, in recent fw unused!?!)aura
- aura.xml - served by aurad / libavmupnp.so / libavmupnpbig.soavmnexus
- avmnexusdesc.xml - served by avmnexusdconfigd
- configd.xml - served by configd? (2 repeaters fw 4.82-5.01)fbox
- fboxdesc.xml - served by deviceinfod or upnpdevdfoncontrol
- foncontrol.xml - served by libfoncontrol.so (fw 4.44-5.09)GPMDev
- GPMDevDesc.xml - served by libgpmsrv.soigd
- igddesc.xml - served by dsldigd2
- igd2desc.xml - served by dsldl2tpv3
- l2tpv3.xml - served by l2tpv3dMediaRendererDev
- MediaRendererDevDesc.xml - served by renderer (fwr only, fw 4.82-4.88)MediaServerDev
- MediaServerDevDesc.xml - served by fritznasdb / libavmupnp.so / libavmupnpbig.so using libmediasrv.soMediaServerDev-xbox
- MediaServerDevDesc-xbox.xml - served by fritznasdb / libavmupnp.so / libavmupnpbig.so using libmediasrv.somini
- mini.xml - served by minid (mini models only, fw 4.44-4.99)OnlineServerDev
- OnlineServerDevDesc.xml - served by libavmupnp.so / libavmupnpbig.so using libcloudcds.so (fw 5.29 - 6.110)phonebook
- phonebook.xml - served by pbd (fw 4.31-6.110)satip
- satipdesc.xml - served by cableinfoTMediaCenterDev
- TMediaCenterDevDesc.xml - served by libavmupnp.so / libavmupnpbig.so using libtcloud.sotr64
- tr64desc.xml - served by ctlmgr using libtr064.sousb
- usbdesc.xml - served by libupnpdevusb.so (fw 4.74-6.110)
Each root device uses an XML file describing the devices provided and references to the SCPD files describing the services.
For example: The igd2
root device defined in igd2desc.xml provides the InternetGatewayDevice:2
, the WANDevice:2
and the WANConnectionDevice:2
devices and the services Any:1
(any.xml).WANCommonInterfaceConfig:1
(igdicfgSCPD.xml), WANDSLLinkConfig:1
(igddslSCPD.xml), WANIPConnection:2
(igd2connSCPD.xml) andWANIPv6FirewallControl:1
(igd2ipv6fwcSCPD.xml), each of which are announced separately for IPv4 and IPv6 site-local.
Examples
fw 7.39 Mesh-Master M-SEARCH
ssdp:discover
request for l2tpv3 devices:
M-SEARCH * HTTP/1.1 Host: 239.255.255.250:1900 Man: "ssdp:discover" MX: 5 ST: urn:schemas-upnp-org:device:l2tpv3:1
Note the trailing double CRLF / empty line. which is necessary to separate the HTTP header from the empty body.
Example explanation showing how the igd2
devices and services are anounced:
At boot time first the igd2 upnp:rootdevice
is announced with state ssdp:byebye
(off):
NOTIFY * HTTP/1.1 Cache-Control: max-age=1800 Host: 239.255.255.250:1900 Location: http://192.168.178.1:49000/igd2desc.xml Server: FRITZ!Box 7530 UPnP/1.0 AVM FRITZ!Box 7530 164.07.39 NT: upnp:rootdevice NTS: ssdp:byebye USN: uuid:75802409-bccb-40e7-9f6c-MACADDRESS::upnp:rootdevice
Announcing the UUID:
NOTIFY * HTTP/1.1 Cache-Control: max-age=1800 Host: 239.255.255.250:1900 Location: http://192.168.178.1:49000/igd2desc.xml Server: FRITZ!Box 7530 UPnP/1.0 AVM FRITZ!Box 7530 164.07.39 NT: uuid:75802409-bccb-40e7-9f6c-MACADDRESS NTS: ssdp:byebye USN: uuid:75802409-bccb-40e7-9f6c-MACADDRESS
Announcing the URN of the InternetGatewayDevice:2
:
NOTIFY * HTTP/1.1 Cache-Control: max-age=1800 Host: 239.255.255.250:1900 Location: http://192.168.178.1:49000/igd2desc.xml Server: FRITZ!Box 7530 UPnP/1.0 AVM FRITZ!Box 7530 164.07.39 NT: urn:schemas-upnp-org:device:InternetGatewayDevice:2 NTS: ssdp:byebye USN: uuid:75802409-bccb-40e7-9f6c-MACADDRESS::urn:schemas-upnp-org:device:InternetGatewayDevice:2
These 3 requests are repeated for IPv6, if enabled. All 6 are repeated for WANDevice:2
and WANConnectionDevice:2
.
After this the services are announced, still with ssdp:byebye
(off) state:
NOTIFY * HTTP/1.1 Cache-Control: max-age=1800 Host: 239.255.255.250:1900 Location: http://192.168.178.1:49000/igd2desc.xml Server: FRITZ!Box 7530 UPnP/1.0 AVM FRITZ!Box 7530 164.07.39 NT: urn:schemas-any-com:service:Any:1 NTS: ssdp:byebye USN: uuid:75802409-bccb-40e7-9f6c-MACADDRESS::urn:schemas-any-com:service:Any:1
This is repeated for each service and for IPv6. For igd2 this sums up to:
- 18 NOTIFY requests to announce 3 devices
- 10 NOTIFY requests to announce 5 services
Once a device is running its complete notify procedure is repeated with ssdp:alive
state, device by device.
And all this was just the igd2 root device, and happens for every other active root device the same way.