SSDP - Simple Service Discovery Protocol
What is SSDP?
SSDP (Simple Service Discovery Protocol) is a network protocol used to discover devices and services on a local network without manual configuration. It is part of the UPnP (Universal Plug and Play) suite and operates over UDP.
Why is SSDP useful?
Automatically detects smart TVs, printers, routers, and media servers
Simplifies setup by removing the need for manual IP configuration
Enables plug-and-play features in home and office networks
How it works
Device joins network – Connects to local network (e.g., Smart TV)
Sends SSDP advertisement – Broadcasts “I’m here” with available services
Control point (client) listens – Phones, PCs, or apps listen for these messages
Client sends M-SEARCH request – A device can actively search for services
Device responds – Matching devices reply with service details (IP, port, URL)
Client connects – Uses the info to interact (e.g., stream content)
Where is SSDP used?
Smart home environments
Media streaming setups
Networked printers
Home routers and gateways
Which OSI layer does this protocol belong to?
Application Layer (Layer 7)
SSDP is used for device/service discovery, a high-level application function
It operates over UDP but enables applications to discover peers/services
Typically uses UDP port 1900 and IP multicast
What are common devices using SSDP?
Smart TVs and media players
IoT devices (e.g., smart plugs, speakers)
Network printers
Home routers with UPnP enabled
What are alternatives to SSDP?
mDNS/Bonjour – Used by Apple and Zeroconf environments
WS-Discovery – Used by Microsoft systems
Zeroconf/Avahi – For Linux and cross-platform auto-discovery
What is USN in SSDP?
USN (Unique Service Name) is a string that uniquely identifies a device or service
Format: uuid:<device-uuid>::urn:schemas-upnp-org:service:<service-name>
What can we learn from SSDP messages?
Device type (e.g., MediaServer, rootdevice)
Software/firmware info via SERVER field
Device IP address via LOCATION header
Join/leave status via NTS
Unique identity via USN, UUID
Does SSDP support IPv4 or IPv6?
SSDP supports both IPv4 and IPv6
IPv4 uses multicast to 239.255.255.250:1900
IPv6 uses FF02::C (but not all devices support IPv6 discovery)
Is SSDP suitable for real-time applications?
No, SSDP is designed only for device and service discovery. It is not intended for real-time communication, such as video, voice, or large data transfers.
Topics in this section,
In this section, you are going to learn
Terminology
Version Info
S.No |
Version |
RFC |
Year |
contribution/core ideas |
---|---|---|---|---|
1 |
1 |
draft-cai-ssdp-v1-00 |
1999 |
Initial draft introducing SSDP for discovering network services using multicast and HTTPU. |
2 |
1 |
draft-cai-ssdp-v1-01 |
1999 |
Refinements to message formats and |
headers; introduced OPTIONS and |
||||
ANNOUNCE methods. |
||||
3 |
1 |
draft-cai-ssdp-v1-02 |
1999 |
Added SUBSCRIBE method; aligned with |
GENA. |
||||
4 |
1 |
draft-cai-ssdp-v1-03 |
1999 |
Final draft with clarified message flows, |
caching model, and multicast discovery |
||||
behavior |
setup
setup
SSDP START LINE Packet
S.No |
Packet Components |
Description |
Size(Bytes) |
---|---|---|---|
1 |
Start Line |
First line of the SSDP message, similar to HTTP. Indicates the method and protocol. |
2040 |
Method |
M-SEARCH * HTTP/1.1 or NOTIFY * HTTP/1.1 |
SSDP HEADERS Packet
2 |
Headers |
Key-value pairs that define the SSDP message metadata and instructions. |
150400 |
---|---|---|---|
HOST |
Multicast address and port (239.255.255.250:1900) |
25 |
|
MAN |
Method type (“ssdp:discover”), only in M-SEARCH |
25 |
|
MX |
Maximum wait time for response, only in M-SEARCH |
10 |
|
ST |
Search Target type of device/service (M-SEARCH) |
30100 |
|
NT |
Notification Type type of device/service (NOTIFY) |
30100 |
|
NTS |
Notification Sub Type (ssdp:alive, ssdp:byebye) (NOTIFY) |
20 |
|
USN |
Unique Service Name identifies the device/service |
50150 |
|
LOCATION |
URL to device description document (NOTIFY) |
50150 |
|
CACHE-CONTROL |
Validity duration of advertisement (NOTIFY) |
20 |
|
SERVER |
OS and UPnP version info (NOTIFY) |
30100 |
SSDP BLANK LINE Packet
3 |
Blank Line |
Marks the end of the header section (rn) |
2 |
SSDP PAYLOAD(optional) Packet
4 |
Payload (optional) |
Rarely used in SSDP; typically empty |
0 |
S.No |
Use Case |
Description |
---|---|---|
1 |
Device Discovery |
Automatically finds UPnP-enabled devices on a local network without manual configuration. |
2 |
Media Streaming |
Enables media servers to advertise themselves to clients. |
3 |
Smart Home Integration |
Allows smart home hubs to discover and interact with IoT devices like lights, thermostats, and cameras. |
4 |
Plug and Play Networking |
Helps new devices join a network and announce their capabilities without user intervention. |
5 |
Service Advertisement |
Devices use SSDP to broadcast available services to other devices. |
6 |
Network Configuration Tools |
Used by network management tools to detect and list all UPnP-compatible devices on the network. |
7 |
Gaming Consoles |
Consoles like Xbox and PlayStation use SSDP to discover media servers and other compatible devices. |
8 |
VoIP and IP Cameras |
Helps VoIP phones and IP cameras register themselves on the network for easy access and configuration. |
S.No |
SSDP features |
Description |
---|---|---|
1 |
Discovery Protocol |
Enables automatic discovery of UPnP devices and services on a local network. |
2 |
Uses UDP Multicast |
Operates over UDP using multicast address 239.255.255.250:1900 for communication. |
3 |
HTTP-like Messaging |
Uses HTTP-style request and response messages (e.g., M-SEARCH, NOTIFY). |
4 |
Zero Configuration |
No manual setup required; devices can join and advertise themselves automatically. |
5 |
Supports Both Search and Advertisement |
Clients can search for services (M-SEARCH) and devices can advertise (NOTIFY). |
6 |
Lightweight Protocol |
Minimal overhead, making it suitable for embedded and IoT devices. |
7 |
Time-to-Live (TTL) Control |
Advertisements include a CACHE-CONTROL header to define how long they are valid. |
8 |
Extensible |
Can be extended to support custom device types and services. |
9 |
Part of UPnP Stack |
SSDP is the discovery layer of the Universal Plug and Play architecture. |
10 |
Cross-Platform Support |
Supported by many operating systems and networked devices. |
Discovery Protocol - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SSDP Discovery Request |
Send M-SEARCH request |
Devices respond with NOTIFY |
2 |
SSDP Response Format |
Validate response format |
Response includes required headers |
3 |
SSDP Multicast Address |
Send request to 239.255.255.250 |
Devices receive and respond |
4 |
SSDP Port Usage |
Use port 1900 |
Communication succeeds |
5 |
SSDP TTL Configuration |
Set TTL for multicast |
Message reaches correct scope |
6 |
SSDP Device Advertisement |
Device sends NOTIFY |
Advertisement received by clients |
7 |
SSDP Service Type Match |
Search for specific service type |
Matching devices respond |
8 |
SSDP Search Timeout |
Set timeout for M-SEARCH |
Responses received within time |
9 |
SSDP Search Interval |
Send repeated M-SEARCH |
Responses received periodically |
10 |
SSDP Response Delay |
Measure response time |
Within acceptable limits |
11 |
SSDP Header Validation |
Check headers like ST, USN, LOCATION |
All required headers present |
12 |
SSDP LOCATION URL Validity |
Validate LOCATION URL |
URL is reachable |
13 |
SSDP USN Format |
Validate Unique Service Name |
Format matches specification |
14 |
SSDP ST Header Matching |
Match Search Target |
Correct services respond |
15 |
SSDP Version Compatibility |
Test with SSDP v1.0 |
Protocol functions correctly |
16 |
SSDP IPv6 Support |
Send SSDP over IPv6 |
Devices respond correctly |
17 |
SSDP IPv4 Support |
Send SSDP over IPv4 |
Devices respond correctly |
18 |
SSDP Device Removal |
Device sends BYE-BYE NOTIFY |
Clients remove device from list |
19 |
SSDP Device Re-Announcement |
Device re-announces presence |
Clients update device list |
20 |
SSDP Duplicate Response Handling |
Handle multiple responses |
No duplication in client list |
21 |
SSDP Response Filtering |
Filter responses by ST |
Only matching services listed |
22 |
SSDP Response Parsing |
Parse SSDP response correctly |
Data extracted accurately |
23 |
SSDP Response Logging |
Log all SSDP responses |
Logs contain complete entries |
24 |
SSDP Response Security |
Validate response source |
Only trusted sources accepted |
25 |
SSDP Response Spoofing |
Simulate spoofed response |
Client detects and ignores |
26 |
SSDP Response Rate Limiting |
Limit response rate |
No flooding occurs |
27 |
SSDP Response Retry |
Retry on no response |
Retry succeeds |
28 |
SSDP Response Aggregation |
Aggregate multiple responses |
All services listed correctly |
29 |
SSDP Response to Invalid Request |
Send malformed M-SEARCH |
No response or error returned |
30 |
SSDP Response to Unknown ST |
Use unknown service type |
No response expected |
31 |
SSDP Response to Broadcast |
Send broadcast instead of multicast |
Devices may not respond |
32 |
SSDP Response to Unicast |
Send unicast M-SEARCH |
Targeted device responds |
33 |
SSDP Response to Wrong Port |
Send to incorrect port |
No response received |
34 |
SSDP Response with Large Payload |
Send large response |
Client handles correctly |
35 |
SSDP Response with Missing Headers |
Omit required headers |
Client rejects response |
36 |
SSDP Response with Extra Headers |
Add custom headers |
Client ignores or logs them |
37 |
SSDP Response with Invalid LOCATION |
LOCATION URL unreachable |
Client logs error |
38 |
SSDP Response with Invalid USN |
Malformed USN |
Client ignores response |
39 |
SSDP Response with Invalid ST |
Malformed ST |
Client ignores response |
40 |
SSDP Response with Invalid Date |
Incorrect DATE header |
Client logs warning |
41 |
SSDP Response with Invalid Cache-Control |
Malformed cache header |
Client ignores or logs |
42 |
SSDP Response with Invalid Server Header |
Malformed SERVER header |
Client logs warning |
43 |
SSDP Response with Invalid NT Header |
Malformed NT header |
Client ignores response |
44 |
SSDP Response with Invalid NTS Header |
Malformed NTS header |
Client ignores response |
45 |
SSDP Response with Invalid Host Header |
Wrong HOST value |
Client ignores response |
46 |
SSDP Response with Invalid MAN Header |
Wrong MAN value |
Client ignores response |
47 |
SSDP Response with Invalid MX Header |
Wrong MX value |
Client logs warning |
48 |
SSDP Response with Invalid Content-Length |
Incorrect length |
Client logs error |
49 |
SSDP Response with Invalid Protocol Version |
Wrong version |
Client ignores response |
50 |
SSDP Response with Invalid CRLF |
Malformed line endings |
Client rejects response |
Uses UDP Multicast - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Multicast Address Usage |
Send SSDP to 239.255.255.250 |
Message received by all devices |
2 |
Multicast Port Usage |
Use port 1900 for SSDP |
Devices respond correctly |
3 |
Multicast Packet Format |
Validate SSDP packet format |
Packet conforms to SSDP spec |
4 |
Multicast TTL Setting |
Set TTL to 2 |
Packet reaches local subnet |
5 |
Multicast Packet Delivery |
Send M-SEARCH via multicast |
Devices respond with NOTIFY |
6 |
Multicast Packet Reception |
Listen on multicast address |
Device receives SSDP messages |
7 |
Multicast Group Join |
Device joins multicast group |
Device receives SSDP traffic |
8 |
Multicast Group Leave |
Device leaves group |
No longer receives SSDP traffic |
9 |
Multicast Packet Logging |
Log incoming multicast packets |
Logs show correct entries |
10 |
Multicast Packet Filtering |
Filter SSDP packets by ST |
Only relevant packets processed |
11 |
Multicast Packet Parsing |
Parse SSDP headers |
All fields extracted correctly |
12 |
Multicast Packet Size Limit |
Send large SSDP packet |
Packet within UDP limits |
13 |
Multicast Packet Retry |
Retry on packet loss |
Message resent successfully |
14 |
Multicast Packet Loss Simulation |
Simulate packet loss |
Device retries or logs error |
15 |
Multicast Packet Duplication |
Handle duplicate packets |
Device ignores duplicates |
16 |
Multicast Packet Timing |
Measure response time |
Within expected range |
17 |
Multicast Packet Collision |
Simulate multiple sends |
No data corruption occurs |
18 |
Multicast Packet Rate Limiting |
Limit SSDP send rate |
No flooding occurs |
19 |
Multicast Packet Security |
Validate source IP |
Only trusted sources accepted |
20 |
Multicast Packet Spoofing |
Simulate spoofed packet |
Device detects and ignores |
21 |
Multicast Packet with Invalid Headers |
Send malformed headers |
Device ignores packet |
22 |
Multicast Packet with Extra Headers |
Add custom headers |
Device ignores or logs them |
23 |
Multicast Packet with Missing Headers |
Omit required headers |
Device rejects packet |
24 |
Multicast Packet with Invalid ST |
Use unknown service type |
No response expected |
25 |
Multicast Packet with Valid ST |
Use known service type |
Devices respond correctly |
26 |
Multicast Packet with Valid MX |
Set MX value |
Responses delayed accordingly |
27 |
Multicast Packet with Invalid MX |
Use invalid MX value |
Device logs warning |
28 |
Multicast Packet with Valid MAN |
Use correct MAN header |
Device responds correctly |
29 |
Multicast Packet with Invalid MAN |
Use incorrect MAN header |
Device ignores packet |
30 |
Multicast Packet with Valid HOST |
Use correct HOST header |
Device responds correctly |
31 |
Multicast Packet with Invalid HOST |
Use incorrect HOST header |
Device ignores packet |
32 |
Multicast Packet with Valid NTS |
Use correct NTS header |
Device processes correctly |
33 |
Multicast Packet with Invalid NTS |
Use incorrect NTS header |
Device ignores packet |
34 |
Multicast Packet with Valid NT |
Use correct NT header |
Device responds correctly |
35 |
Multicast Packet with Invalid NT |
Use incorrect NT header |
Device ignores packet |
36 |
Multicast Packet with Valid USN |
Use correct USN format |
Device identifies service |
37 |
Multicast Packet with Invalid USN |
Use malformed USN |
Device ignores packet |
38 |
Multicast Packet with Valid LOCATION |
Use reachable LOCATION URL |
Client accesses service description |
39 |
Multicast Packet with Invalid LOCATION |
Use unreachable LOCATION |
Client logs error |
40 |
Multicast Packet with Valid SERVER |
Use correct SERVER header |
Device identifies sender |
41 |
Multicast Packet with Invalid SERVER |
Use malformed SERVER header |
Device logs warning |
42 |
Multicast Packet with Valid CACHE-CONTROL |
Use correct cache header |
Device respects expiration |
43 |
Multicast Packet with Invalid CACHE-CONTROL |
Use malformed cache header |
Device logs warning |
44 |
Multicast Packet with Valid DATE |
Use correct DATE header |
Device logs timestamp |
45 |
Multicast Packet with Invalid DATE |
Use malformed DATE header |
Device logs warning |
46 |
Multicast Packet with CRLF Termination |
Use correct line endings |
Packet parsed correctly |
47 |
Multicast Packet with Invalid CRLF |
Use incorrect line endings |
Device rejects packet |
48 |
Multicast Packet with Valid Content-Length |
Use correct length |
Packet processed correctly |
49 |
Multicast Packet with Invalid Content-Length |
Use incorrect length |
Device logs error |
50 |
Multicast Packet with Protocol Version |
Use SSDP/1.0 |
Device accepts packet |
HTTP Like Messaging - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Valid M-SEARCH Request |
Send correctly formatted M-SEARCH |
Devices respond with NOTIFY |
2 |
Valid NOTIFY Message |
Device sends valid NOTIFY |
Clients receive and parse message |
3 |
HTTP Version Format |
Use SSDP/1.0 in request line |
Message accepted |
4 |
Request Line Format |
Use correct method and URI |
Message parsed successfully |
5 |
Header Field Format |
Use colon-separated headers |
Headers parsed correctly |
6 |
CRLF Line Endings |
Use proper CRLF endings |
Message parsed correctly |
7 |
Missing CRLF |
Omit CRLF between headers |
Message rejected or ignored |
8 |
Extra CRLF |
Add extra CRLF between headers |
Message still parsed correctly |
9 |
Invalid Method |
Use unsupported method |
Message ignored |
10 |
Valid HOST Header |
Include correct HOST value |
Message accepted |
11 |
Invalid HOST Header |
Use incorrect HOST value |
Message ignored |
12 |
Valid MAN Header |
Include “ssdp:discover” |
Message accepted |
13 |
Invalid MAN Header |
Use incorrect MAN value |
Message ignored |
14 |
Valid MX Header |
Set MX to integer value |
Message accepted |
15 |
Invalid MX Header |
Use non-integer MX |
Message ignored |
16 |
Valid ST Header |
Use known service type |
Devices respond correctly |
17 |
Invalid ST Header |
Use unknown service type |
No response expected |
18 |
Valid NT Header |
Use correct notification type |
Message accepted |
19 |
Invalid NT Header |
Use malformed NT value |
Message ignored |
20 |
Valid NTS Header |
Use “ssdp:alive” or “ssdp:byebye” |
Message accepted |
21 |
Invalid NTS Header |
Use unsupported NTS value |
Message ignored |
22 |
Valid USN Header |
Use correct Unique Service Name |
Message accepted |
23 |
Invalid USN Header |
Use malformed USN |
Message ignored |
24 |
Valid LOCATION Header |
Provide reachable URL |
Client accesses service description |
25 |
Invalid LOCATION Header |
Provide unreachable URL |
Client logs error |
26 |
Valid CACHE-CONTROL Header |
Use “max-age” directive |
Message cached appropriately |
27 |
Invalid CACHE-CONTROL Header |
Use malformed directive |
Message ignored or logged |
28 |
Valid SERVER Header |
Include device info |
Message accepted |
29 |
Invalid SERVER Header |
Use malformed SERVER value |
Message logged with warning |
30 |
Valid DATE Header |
Include correct date format |
Message accepted |
31 |
Invalid DATE Header |
Use incorrect format |
Message logged with warning |
32 |
Header Case Sensitivity |
Use mixed-case headers |
Message parsed correctly |
33 |
Header Order Flexibility |
Change header order |
Message parsed correctly |
34 |
Duplicate Headers |
Repeat headers like ST |
Message parsed or logged as duplicate |
35 |
Missing Required Headers |
Omit ST or MAN |
Message ignored |
36 |
Extra Headers |
Add custom headers |
Message accepted or ignored safely |
37 |
Header Length Limit |
Use long header values |
Message accepted if within limits |
38 |
Message Size Limit |
Send large SSDP message |
Message accepted if within UDP limits |
39 |
Message Fragmentation |
Fragment message across packets |
Message rejected (UDP does not support fragmentation) |
40 |
Message Encoding |
Use UTF-8 encoding |
Message parsed correctly |
41 |
Invalid Encoding |
Use unsupported encoding |
Message ignored |
42 |
Message Logging |
Log received SSDP messages |
Logs contain full HTTP-like structure |
43 |
Message Parsing |
Parse headers and values |
All fields extracted correctly |
44 |
Message Validation |
Validate message structure |
Message accepted or rejected accordingly |
45 |
Message Replay |
Replay valid message |
Devices respond again |
46 |
Message Spoofing |
Send spoofed message |
Client detects and ignores |
47 |
Message Rate Limiting |
Send messages rapidly |
Server throttles or ignores excess |
48 |
Message with Comments |
Include comments in headers |
Message parsed correctly or ignored |
49 |
Message with Line Continuation |
Use folded headers |
Message parsed correctly |
50 |
Message with Invalid Protocol Version |
Use SSDP/2.0 |
Message rejected or ignored |
Zero Configuration - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SSDP Discovery Broadcast |
Verify device sends SSDP discovery messages |
SSDP M-SEARCH sent to 239.255.255.250:1900 |
2 |
SSDP Response to Discovery |
Verify device responds to SSDP discovery requests |
Valid SSDP response with required headers |
3 |
SSDP Advertisement Notification |
Check device sends NOTIFY messages |
NOTIFY messages with correct service type and location |
4 |
SSDP Message Format |
Validate SSDP message structure |
Messages conform to UPnP SSDP format |
5 |
SSDP TTL Value |
Check default TTL value in SSDP messages |
TTL is set to 4 |
6 |
SSDP Multicast Address |
Verify correct multicast address usage |
Messages sent to 239.255.255.250 |
7 |
SSDP Port Usage |
Validate SSDP uses port 1900 |
SSDP messages use UDP port 1900 |
8 |
SSDP Header Validation |
Check presence of required headers |
Headers like HOST, MAN, ST, MX, LOCATION are present |
9 |
SSDP Retry Mechanism |
Test retry behavior when no response received |
Retries occur within defined interval |
10 |
SSDP Shutdown Notification |
Verify ssdp:byebye message on shutdown |
Device sends NOTIFY with NTS: ssdp:byebye |
11 |
SSDP Service Type Advertisement |
Validate advertised service types |
Correct NT and USN values in NOTIFY |
12 |
SSDP Location URL |
Check validity of LOCATION URL |
URL points to accessible XML description |
13 |
SSDP XML Description |
Validate XML content at LOCATION |
XML contains valid UPnP device/service description |
14 |
SSDP Response Timing |
Measure response time to M-SEARCH |
Response within MX value range |
15 |
SSDP Multiple Device Discovery |
Discover multiple devices on network |
All devices respond and are listed |
16 |
SSDP Advertisement Frequency |
Check frequency of NOTIFY messages |
Matches CACHE-CONTROL header |
17 |
SSDP Unicast Response |
Verify unicast response to M-SEARCH |
Response sent to requesters IP and port |
18 |
SSDP Interface Binding |
Test SSDP on multiple network interfaces |
SSDP messages sent on all active interfaces |
19 |
SSDP IPv6 Support |
Verify SSDP over IPv6 |
SSDP messages sent and received over IPv6 |
20 |
SSDP IPv4 Support |
Verify SSDP over IPv4 |
SSDP messages sent and received over IPv4 |
21 |
SSDP Packet Size |
Check SSDP message size |
Packet size < 1 KB |
22 |
SSDP CPU Usage |
Measure CPU usage during SSDP operation |
CPU usage remains low |
23 |
SSDP Memory Usage |
Measure memory footprint of SSDP |
Memory usage is minimal |
24 |
SSDP on Reboot |
Verify SSDP reinitializes after reboot |
SSDP resumes discovery and advertisement |
25 |
SSDP on Network Change |
Test SSDP behavior on network switch |
SSDP rebinds and resumes operation |
26 |
SSDP on Wi-Fi |
Verify SSDP over Wi-Fi |
SSDP messages sent and received |
27 |
SSDP on Ethernet |
Verify SSDP over Ethernet |
SSDP messages sent and received |
28 |
SSDP on Mobile Network |
Test SSDP on mobile hotspot |
SSDP functions correctly |
29 |
SSDP on VPN |
Test SSDP behavior over VPN |
SSDP messages may be blocked or rerouted |
30 |
SSDP Firewall Handling |
Check SSDP behavior with firewall enabled |
SSDP messages blocked or allowed based on rules |
31 |
SSDP NAT Traversal |
Test SSDP across NAT |
SSDP may not traverse NAT |
32 |
SSDP Service Removal |
Verify service removal notification |
Device sends ssdp:byebye for removed service |
33 |
SSDP Service Update |
Test update of advertised service |
Device sends updated NOTIFY message |
34 |
SSDP Logging |
Check SSDP logs for discovery and advertisement |
Logs contain SSDP activity |
35 |
SSDP Error Handling |
Validate error handling for malformed messages |
Errors logged, malformed messages ignored |
36 |
SSDP Compatibility with UPnP |
Verify SSDP integration with UPnP stack |
SSDP enables UPnP device discovery |
37 |
SSDP Compatibility with DLNA |
Test SSDP with DLNA devices |
DLNA devices discovered via SSDP |
38 |
SSDP Compatibility with IoT Devices |
Verify SSDP on IoT platforms |
SSDP functions on embedded systems |
39 |
SSDP Custom Service Type Support |
Advertise custom service types |
SSDP messages include custom NT and USN |
40 |
SSDP Message Parsing |
Validate SSDP message parsing |
Messages parsed correctly |
41 |
SSDP Message Filtering |
Test filtering of SSDP messages |
Only relevant messages processed |
42 |
SSDP Message Duplication |
Check for duplicate SSDP messages |
Duplicates handled gracefully |
43 |
SSDP Message Loss |
Test behavior under packet loss |
SSDP retries or logs failure |
44 |
SSDP Multicast Join/Leave |
Verify multicast group join and leave |
Device joins/leaves 239.255.255.250 group |
45 |
SSDP Service Discovery Accuracy |
Validate discovered services |
Matches advertised services |
46 |
SSDP Service Discovery Latency |
Measure latency of service discovery |
Discovery occurs within MX timeout |
47 |
SSDP XML Schema Validation |
Validate XML schema of service description |
XML conforms to UPnP schema |
48 |
SSDP Cache-Control Header |
Check CACHE-CONTROL header value |
Header defines advertisement interval |
49 |
SSDP ST Header Matching |
Verify ST header matches advertised services |
ST in M-SEARCH matches NT in NOTIFY |
50 |
SSDP USN Header Uniqueness |
Check uniqueness of USN header |
Each service has a unique USN |
Supports Both Search And Advertisement - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SSDP Search Request Broadcast |
Verify device sends M-SEARCH messages |
M-SEARCH sent to 239.255.255.250:1900 |
2 |
SSDP Search Response Handling |
Validate response to M-SEARCH |
Device sends valid SSDP response |
3 |
SSDP Advertisement Notification |
Check device sends NOTIFY messages |
NOTIFY messages with correct headers |
4 |
SSDP Dual Role Operation |
Verify device acts as both client and server |
Device sends and responds to SSDP messages |
5 |
SSDP Service Discovery Accuracy |
Validate discovered services match advertised ones |
Discovered services match advertised metadata |
6 |
SSDP Search and Advertisement Coexistence |
Ensure both features operate simultaneously |
No conflict between search and advertisement |
7 |
SSDP Search Frequency |
Check frequency of M-SEARCH messages |
Matches configured interval |
8 |
SSDP Advertisement Frequency |
Check frequency of NOTIFY messages |
Matches CACHE-CONTROL header |
9 |
SSDP Search Target Matching |
Validate ST header matches advertised NT |
Correct service types discovered |
10 |
SSDP USN Header Consistency |
Check USN consistency across search and advertisement |
Same USN used in both NOTIFY and response |
11 |
SSDP Location URL |
Validate LOCATION URL in both message types |
URL points to valid XML description |
12 |
SSDP XML Description Retrieval |
Retrieve and validate XML from LOCATION |
XML contains valid UPnP description |
13 |
SSDP TTL Value |
Check TTL value in both message types |
TTL is set to 4 |
14 |
SSDP Multicast Address |
Validate multicast address usage |
Messages sent to 239.255.255.250 |
15 |
SSDP Port Usage |
Check port 1900 usage |
SSDP messages use UDP port 1900 |
16 |
SSDP Header Validation |
Validate headers in both message types |
Required headers present (HOST, MAN, ST, NT, etc.) |
17 |
SSDP Retry Mechanism |
Test retry behavior for search and advertisement |
Retries occur within defined interval |
18 |
SSDP Shutdown Notification |
Verify ssdp:byebye message on shutdown |
Device sends NOTIFY with NTS: ssdp:byebye |
19 |
SSDP Interface Binding |
Test SSDP on multiple network interfaces |
Messages sent on all active interfaces |
20 |
SSDP IPv6 Support |
Verify SSDP over IPv6 |
SSDP messages sent and received over IPv6 |
21 |
SSDP IPv4 Support |
Verify SSDP over IPv4 |
SSDP messages sent and received over IPv4 |
22 |
SSDP Packet Size |
Check message size for both types |
Packet size < 1 KB |
23 |
SSDP CPU Usage |
Measure CPU usage during dual operation |
CPU usage remains low |
24 |
SSDP Memory Usage |
Measure memory footprint |
Memory usage is minimal |
25 |
SSDP on Reboot |
Verify SSDP resumes after reboot |
SSDP resumes search and advertisement |
26 |
SSDP on Network Change |
Test SSDP behavior on network switch |
SSDP rebinds and resumes operation |
27 |
SSDP on Wi-Fi |
Verify SSDP over Wi-Fi |
SSDP messages sent and received |
28 |
SSDP on Ethernet |
Verify SSDP over Ethernet |
SSDP messages sent and received |
29 |
SSDP on Mobile Network |
Test SSDP on mobile hotspot |
SSDP functions correctly |
30 |
SSDP on VPN |
Test SSDP behavior over VPN |
SSDP messages may be blocked or rerouted |
31 |
SSDP Firewall Handling |
Check SSDP behavior with firewall enabled |
SSDP messages blocked or allowed based on rules |
32 |
SSDP NAT Traversal |
Test SSDP across NAT |
SSDP may not traverse NAT |
33 |
SSDP Service Removal |
Verify service removal notification |
Device sends ssdp:byebye for removed service |
34 |
SSDP Service Update |
Test update of advertised service |
Device sends updated NOTIFY message |
35 |
SSDP Logging |
Check SSDP logs for search and advertisement |
Logs contain SSDP activity |
36 |
SSDP Error Handling |
Validate error handling for malformed messages |
Errors logged, malformed messages ignored |
37 |
SSDP Compatibility with UPnP |
Verify SSDP integration with UPnP stack |
SSDP enables UPnP device discovery |
38 |
SSDP Compatibility with DLNA |
Test SSDP with DLNA devices |
DLNA devices discovered via SSDP |
39 |
SSDP Compatibility with IoT Devices |
Verify SSDP on IoT platforms |
SSDP functions on embedded systems |
40 |
SSDP Custom Service Type Support |
Advertise and discover custom service types |
SSDP messages include custom NT and USN |
41 |
SSDP Message Parsing |
Validate SSDP message parsing |
Messages parsed correctly |
42 |
SSDP Message Filtering |
Test filtering of SSDP messages |
Only relevant messages processed |
43 |
SSDP Message Duplication |
Check for duplicate SSDP messages |
Duplicates handled gracefully |
44 |
SSDP Message Loss |
Test behavior under packet loss |
SSDP retries or logs failure |
45 |
SSDP Multicast Join/Leave |
Verify multicast group join and leave |
Device joins/leaves 239.255.255.250 group |
46 |
SSDP Search Latency |
Measure latency of service discovery |
Discovery occurs within MX timeout |
47 |
SSDP XML Schema Validation |
Validate XML schema of service description |
XML conforms to UPnP schema |
48 |
SSDP Cache-Control Header |
Check CACHE-CONTROL header value |
Header defines advertisement interval |
49 |
SSDP ST Header Matching |
Verify ST header matches advertised services |
ST in M-SEARCH matches NT in NOTIFY |
50 |
SSDP USN Header Uniqueness |
Check uniqueness of USN header |
Each service has a unique USN |
Lightweight Protocol - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SSDP Discovery |
Send M-SEARCH to discover devices |
Devices respond with NOTIFY |
2 |
SSDP Alive Notification |
Device sends NOTIFY alive message |
Control point receives alive message |
3 |
SSDP ByeBye Notification |
Device sends NOTIFY byebye message |
Control point removes device |
4 |
SSDP Response Format |
Validate SSDP response format |
Response follows SSDP spec |
5 |
SSDP Over UDP |
Send SSDP over UDP |
Message is received correctly |
6 |
SSDP Port Check |
Send on wrong port |
No response received |
7 |
SSDP TTL Expiry |
Set TTL to 1 |
Message doesn’t cross subnet |
8 |
SSDP Invalid Header |
Send malformed header |
Message is ignored |
9 |
SSDP Missing ST Header |
Omit ST header in M-SEARCH |
No response received |
10 |
SSDP Broadcast Range |
Send to 239.255.255.250 |
Devices respond |
11 |
SSDP Multicast Join |
Device joins multicast group |
Device receives M-SEARCH |
12 |
SSDP Multicast Leave |
Device leaves group |
No longer receives M-SEARCH |
13 |
SSDP Response Delay |
Measure response time |
Response within 1 second |
14 |
SSDP Duplicate Response |
Device sends duplicate responses |
Control point handles gracefully |
15 |
SSDP Device Type Filter |
Search for specific device type |
Only matching devices respond |
16 |
SSDP Service Type Filter |
Search for specific service type |
Only matching services respond |
17 |
SSDP Case Sensitivity |
Use mixed-case headers |
Protocol handles correctly |
18 |
SSDP Header Order |
Change header order |
Response still valid |
19 |
SSDP Large Payload |
Send large SSDP message |
Message is truncated or rejected |
20 |
SSDP Invalid IP |
Send to invalid IP |
No response |
21 |
SSDP Invalid Port |
Send to invalid port |
No response |
22 |
SSDP Retry Mechanism |
Retry on no response |
Device responds on retry |
23 |
SSDP Device Timeout |
Device stops responding |
Control point removes it |
24 |
SSDP Network Loss |
Disconnect network |
Device disappears from discovery |
25 |
SSDP Reconnect |
Reconnect device |
Device reappears |
26 |
SSDP Multiple Devices |
Multiple devices respond |
All are discovered |
27 |
SSDP Flooding |
Send many M-SEARCH |
Devices handle load |
28 |
SSDP Rate Limiting |
Exceed rate limit |
Responses are throttled |
29 |
SSDP Invalid Method |
Use unsupported method |
Message is ignored |
30 |
SSDP IPv6 Support |
Send over IPv6 |
Devices respond correctly |
31 |
SSDP IPv4 Support |
Send over IPv4 |
Devices respond correctly |
32 |
SSDP Mixed Network |
IPv4 and IPv6 devices |
All respond appropriately |
33 |
SSDP Device Reboot |
Reboot device |
Sends alive message again |
34 |
SSDP Service Update |
Change service info |
Sends updated NOTIFY |
35 |
SSDP Header Injection |
Inject extra headers |
Ignored or handled safely |
36 |
SSDP Security Check |
Send spoofed message |
Ignored or flagged |
37 |
SSDP Logging |
Log SSDP messages |
Logs are accurate |
38 |
SSDP Packet Loss |
Simulate packet loss |
Retry or timeout occurs |
39 |
SSDP Response Count |
Count responses |
Matches expected number |
40 |
SSDP Response Parsing |
Parse SSDP response |
All fields extracted correctly |
41 |
SSDP ST Wildcard |
Use ST: ssdp:all |
All devices respond |
42 |
SSDP ST Specific |
Use ST: upnp:rootdevice |
Only root devices respond |
43 |
SSDP MX Value |
Set MX to 5 |
Responses delayed up to 5s |
44 |
SSDP MX Zero |
Set MX to 0 |
Immediate response |
45 |
SSDP MX Invalid |
Set MX to invalid value |
Message ignored |
46 |
SSDP Device UUID |
Validate device UUID |
Matches expected format |
47 |
SSDP Service UUID |
Validate service UUID |
Matches expected format |
48 |
SSDP Response to Unknown ST |
Use unknown ST |
No response |
49 |
SSDP Response to Empty ST |
Use empty ST |
No response |
50 |
SSDP Device Removal |
Device sends byebye |
Control point removes it |
Time To Live Control - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
TTL Default Value |
Check default TTL value in SSDP packets |
TTL is set to 4 (standard) |
2 |
TTL = 1 |
Set TTL to 1 |
SSDP message does not cross subnet |
3 |
TTL = 0 |
Set TTL to 0 |
SSDP message is dropped immediately |
4 |
TTL = 255 |
Set TTL to max |
SSDP message reaches all reachable devices |
5 |
TTL Decrement |
Observe TTL decrement across hops |
TTL decreases by 1 per hop |
6 |
TTL Expiry |
TTL expires before reaching device |
SSDP message is discarded |
7 |
TTL Custom Value |
Set TTL to custom value (e.g., 10) |
Message reaches devices within 10 hops |
8 |
TTL Logging |
Log TTL value in received SSDP messages |
TTL value is correctly logged |
9 |
TTL Manipulation Detection |
Detect abnormal TTL values |
System flags suspicious TTL |
10 |
TTL in Multicast |
Send SSDP multicast with TTL = 2 |
Message reaches devices within 2 hops |
11 |
TTL in Unicast |
Send SSDP unicast with TTL = 2 |
Message reaches target device |
12 |
TTL vs Response Time |
Measure response time with varying TTL |
Higher TTL may increase response time |
13 |
TTL vs Network Load |
Send SSDP with high TTL in busy network |
Message may be delayed or dropped |
14 |
TTL in IPv6 |
Set TTL in IPv6 SSDP message |
Hop limit is respected |
15 |
TTL in IPv4 |
Set TTL in IPv4 SSDP message |
TTL is respected |
16 |
TTL Reset on Reboot |
Reboot device and check TTL |
TTL resets to default |
17 |
TTL in SSDP NOTIFY |
Check TTL in NOTIFY messages |
TTL is correctly set |
18 |
TTL in SSDP M-SEARCH |
Check TTL in M-SEARCH messages |
TTL is correctly set |
19 |
TTL in SSDP RESPONSE |
Check TTL in RESPONSE messages |
TTL is correctly set |
20 |
TTL in SSDP BYEBYE |
Check TTL in BYEBYE messages |
TTL is correctly set |
21 |
TTL in SSDP ALIVE |
Check TTL in ALIVE messages |
TTL is correctly set |
22 |
TTL in SSDP Header |
Validate TTL in packet header |
TTL field is present and correct |
23 |
TTL with VPN |
Send SSDP through VPN with TTL = 1 |
Message does not reach remote device |
24 |
TTL with Firewall |
Send SSDP with TTL = 1 through firewall |
Message may be blocked |
25 |
TTL with NAT |
Send SSDP with TTL = 1 through NAT |
Message may not reach external device |
26 |
TTL with Proxy |
Send SSDP through proxy with TTL = 1 |
Message may be dropped |
27 |
TTL with Mesh Network |
Send SSDP in mesh with TTL = 3 |
Message reaches limited nodes |
28 |
TTL with Broadcast |
Send SSDP broadcast with TTL = 1 |
Message stays within local subnet |
29 |
TTL with Multicast Routing |
Check TTL effect on multicast routing |
Routing respects TTL |
30 |
TTL with SSDP Flood |
Flood SSDP with TTL = 1 |
Network impact is minimal |
31 |
TTL with SSDP Retry |
Retry SSDP with increasing TTL |
Message eventually reaches device |
32 |
TTL with SSDP Delay |
Measure delay with TTL = 5 |
Delay increases slightly |
33 |
TTL with SSDP Drop |
Drop SSDP if TTL < threshold |
Message is discarded |
34 |
TTL with SSDP Filter |
Filter SSDP messages by TTL |
Only messages with valid TTL processed |
35 |
TTL with SSDP Monitor |
Monitor TTL values in SSDP traffic |
TTL values logged and analyzed |
36 |
TTL with SSDP Analyzer |
Analyze TTL impact on discovery |
TTL affects reachability |
37 |
TTL with SSDP Simulator |
Simulate SSDP with TTL = 2 |
Message reaches 2-hop devices |
38 |
TTL with SSDP Validator |
Validate TTL in SSDP tool |
TTL is within acceptable range |
39 |
TTL with SSDP Debug |
Debug SSDP TTL issues |
TTL misconfigurations identified |
40 |
TTL with SSDP Config |
Configure TTL in SSDP settings |
TTL is applied correctly |
41 |
TTL with SSDP API |
Set TTL via SSDP API |
TTL is reflected in packets |
42 |
TTL with SSDP CLI |
Set TTL via command line |
TTL is applied correctly |
43 |
TTL with SSDP GUI |
Set TTL via GUI |
TTL is applied correctly |
44 |
TTL with SSDP Policy |
Apply TTL policy |
Messages follow TTL rules |
45 |
TTL with SSDP QoS |
Check TTL impact on QoS |
TTL affects priority routing |
46 |
TTL with SSDP Security |
TTL manipulation detection |
Alerts on abnormal TTL |
47 |
TTL with SSDP Compliance |
Check TTL compliance |
TTL follows protocol standards |
48 |
TTL with SSDP Testbed |
Use testbed to test TTL |
TTL behavior observed |
49 |
TTL with SSDP Benchmark |
Benchmark SSDP with TTL = 4 |
Performance metrics collected |
50 |
TTL with SSDP Audit |
Audit SSDP TTL usage |
TTL values documented |
Extensible - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
Custom Header Support |
Add custom headers to SSDP messages |
SSDP messages include and transmit custom headers |
2 |
Vendor-Specific Extensions |
Add vendor-specific fields |
SSDP messages are parsed without error |
3 |
Extended ST Field |
Use extended ST values |
Devices respond if supported |
4 |
Extended USN Field |
Add metadata to USN |
SSDP messages remain valid |
5 |
SSDP Plugin Integration |
Integrate SSDP with plugin module |
SSDP behavior is enhanced |
6 |
SSDP API Extension |
Extend SSDP API for new features |
API handles new parameters |
7 |
SSDP Protocol Versioning |
Add version info to SSDP headers |
SSDP messages are backward compatible |
8 |
SSDP Custom MX Handling |
Customize MX delay logic |
Responses follow new logic |
9 |
SSDP Custom Notification Types |
Add new NOTIFY types |
Control point handles them correctly |
10 |
SSDP Extended Logging |
Add detailed logging fields |
Logs include extended info |
11 |
SSDP Extended Discovery Filters |
Add new filter criteria |
Discovery respects new filters |
12 |
SSDP Extended Device Types |
Define new device types |
SSDP discovery includes them |
13 |
SSDP Extended Service Types |
Define new service types |
SSDP responses include them |
14 |
SSDP Extended TTL Control |
Add dynamic TTL logic |
TTL adjusts based on context |
15 |
SSDP Extended Retry Logic |
Customize retry behavior |
SSDP retries follow new rules |
16 |
SSDP Extended Response Format |
Add new fields to response |
SSDP remains compliant and readable |
17 |
SSDP Extended Multicast Groups |
Use additional multicast addresses |
SSDP messages reach new groups |
18 |
SSDP Extended Security Tags |
Add security metadata |
SSDP messages are validated securely |
19 |
SSDP Extended Device Metadata |
Include extra device info |
Control point parses extended metadata |
20 |
SSDP Extended Service Metadata |
Include extra service info |
Control point parses extended metadata |
21 |
SSDP Extended Error Handling |
Add error codes to SSDP |
Errors are logged and handled |
22 |
SSDP Extended Eventing |
Add event triggers to SSDP |
SSDP messages initiate events |
23 |
SSDP Extended Subscription Model |
Add subscription logic |
SSDP supports new model |
24 |
SSDP Extended Notification Interval |
Customize NOTIFY intervals |
SSDP sends at new intervals |
25 |
SSDP Extended Device Lifecycle |
Add lifecycle states |
SSDP messages reflect state changes |
26 |
SSDP Extended Device Grouping |
Group devices logically |
SSDP messages include group info |
27 |
SSDP Extended Service Prioritization |
Prioritize services |
SSDP responses reflect priority |
28 |
SSDP Extended Device Roles |
Define roles in SSDP |
SSDP messages include role info |
29 |
SSDP Extended Response Routing |
Route responses differently |
SSDP messages follow new routing logic |
30 |
SSDP Extended Interface Binding |
Bind SSDP to multiple interfaces |
SSDP messages are sent on all interfaces |
31 |
SSDP Extended Protocol Bridging |
Bridge SSDP with other protocols |
SSDP messages trigger external actions |
32 |
SSDP Extended Device Discovery Scope |
Define scope of discovery |
SSDP messages respect scope |
33 |
SSDP Extended Device Capabilities |
Advertise capabilities |
SSDP messages include capability info |
34 |
SSDP Extended Service Dependencies |
Define service dependencies |
SSDP messages reflect relationships |
35 |
SSDP Extended Device Hierarchy |
Define parent-child relationships |
SSDP messages reflect hierarchy |
36 |
SSDP Extended Device Tags |
Add tags to devices |
SSDP messages include tag metadata |
37 |
SSDP Extended Service Tags |
Add tags to services |
SSDP messages include tag metadata |
38 |
SSDP Extended Message Encryption |
Encrypt SSDP payload |
SSDP messages are secure |
39 |
SSDP Extended Message Signing |
Sign SSDP messages |
SSDP messages are verifiable |
40 |
SSDP Extended Message Compression |
Compress SSDP payload |
SSDP messages are smaller |
41 |
SSDP Extended Message Fragmentation |
Fragment large SSDP messages |
SSDP messages are reassembled correctly |
42 |
SSDP Extended Device Localization |
Add language/localization info |
SSDP messages reflect locale |
43 |
SSDP Extended Device Timezone |
Include timezone info |
SSDP messages reflect device time |
44 |
SSDP Extended Device Status |
Include status info |
SSDP messages reflect current state |
45 |
SSDP Extended Device Health |
Include health metrics |
SSDP messages include health data |
46 |
SSDP Extended Device Update Info |
Include firmware update info |
SSDP messages reflect update status |
47 |
SSDP Extended Device Access Control |
Include access control metadata |
SSDP messages enforce permissions |
48 |
SSDP Extended Device Audit Trail |
Include audit info |
SSDP messages are traceable |
49 |
SSDP Extended Device Analytics |
Include analytics metadata |
SSDP messages support monitoring |
50 |
SSDP Extensibility Compliance |
Validate extended SSDP against spec |
SSDP remains compliant and interoperable |
Part Of UPNP Stack - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
UPnP Stack Initialization |
Start UPnP stack with SSDP |
SSDP service starts successfully |
2 |
SSDP Service Registration |
Register SSDP in UPnP stack |
SSDP is listed as active |
3 |
SSDP Discovery Trigger |
Trigger discovery from UPnP |
SSDP sends M-SEARCH |
4 |
SSDP Response Handling |
UPnP stack receives SSDP response |
Response is parsed and stored |
5 |
SSDP NOTIFY Integration |
UPnP sends NOTIFY via SSDP |
NOTIFY is broadcast correctly |
6 |
SSDP BYEBYE Integration |
UPnP sends BYEBYE via SSDP |
Device is removed from registry |
7 |
SSDP Alive Integration |
UPnP sends ALIVE via SSDP |
Device appears in control point |
8 |
SSDP Device Description Fetch |
Fetch device description via SSDP |
URL is retrieved and parsed |
9 |
SSDP Service Description Fetch |
Fetch service description via SSDP |
URL is retrieved and parsed |
10 |
SSDP Root Device Discovery |
Discover root device via SSDP |
Root device responds |
11 |
SSDP Embedded Device Discovery |
Discover embedded device |
Embedded device responds |
12 |
SSDP Service Discovery |
Discover service via SSDP |
Matching service responds |
13 |
SSDP Device UUID Match |
Match UUID in SSDP and UPnP |
UUIDs are consistent |
14 |
SSDP ST Header Mapping |
Map ST header to UPnP device type |
Correct mapping is verified |
15 |
SSDP USN Header Mapping |
Map USN to UPnP unique ID |
USN is parsed and matched |
16 |
SSDP MX Header Handling |
UPnP handles MX delay |
Responses are delayed appropriately |
17 |
SSDP Device Expiry |
Device expires in UPnP registry |
SSDP BYEBYE or timeout triggers removal |
18 |
SSDP Re-Announcement |
Device re-announces via SSDP |
UPnP updates registry |
19 |
SSDP Stack Shutdown |
Shutdown UPnP stack |
SSDP sends BYEBYE |
20 |
SSDP Stack Restart |
Restart UPnP stack |
SSDP sends ALIVE |
21 |
SSDP Stack Error Handling |
SSDP fails to start |
Error is logged in UPnP stack |
22 |
SSDP Stack Recovery |
Recover SSDP after failure |
SSDP resumes normal operation |
23 |
SSDP Stack Logging |
Log SSDP activity in UPnP |
Logs contain SSDP events |
24 |
SSDP Stack Debugging |
Enable debug mode |
SSDP messages are detailed |
25 |
SSDP Stack Configuration |
Configure SSDP via UPnP settings |
Changes are reflected in SSDP |
26 |
SSDP Stack Multicast Join |
Join multicast group |
SSDP receives M-SEARCH |
27 |
SSDP Stack Multicast Leave |
Leave multicast group |
SSDP stops receiving messages |
28 |
SSDP Stack Interface Binding |
Bind SSDP to specific interface |
SSDP listens only on that interface |
29 |
SSDP Stack IPv4 Support |
Use IPv4 in UPnP stack |
SSDP works over IPv4 |
30 |
SSDP Stack IPv6 Support |
Use IPv6 in UPnP stack |
SSDP works over IPv6 |
31 |
SSDP Stack Mixed Mode |
Use both IPv4 and IPv6 |
SSDP handles both correctly |
32 |
SSDP Stack Device Count |
Count devices discovered |
Matches SSDP responses |
33 |
SSDP Stack Device Removal |
Remove device from UPnP |
SSDP BYEBYE is sent |
34 |
SSDP Stack Device Addition |
Add new device |
SSDP ALIVE is sent |
35 |
SSDP Stack Service Update |
Update service info |
SSDP NOTIFY is updated |
36 |
SSDP Stack Device Reboot |
Reboot device |
SSDP re-announces presence |
37 |
SSDP Stack Service Restart |
Restart service |
SSDP NOTIFY is re-sent |
38 |
SSDP Stack Device Conflict |
Two devices with same UUID |
UPnP handles conflict |
39 |
SSDP Stack Device Priority |
Prioritize devices |
SSDP order is respected |
40 |
SSDP Stack Device Filtering |
Filter devices by type |
Only matching SSDP responses processed |
41 |
SSDP Stack Service Filtering |
Filter services by type |
Only matching services processed |
42 |
SSDP Stack Notification Interval |
Set NOTIFY interval |
SSDP sends at correct interval |
43 |
SSDP Stack Retry Mechanism |
Retry on failed discovery |
SSDP retries M-SEARCH |
44 |
SSDP Stack Timeout Handling |
Handle timeout in discovery |
SSDP retries or logs error |
45 |
SSDP Stack Compliance Check |
Validate SSDP compliance |
SSDP follows UPnP spec |
46 |
SSDP Stack Security Check |
Validate SSDP security |
No spoofed messages accepted |
47 |
SSDP Stack Performance |
Measure SSDP performance |
Meets timing and load requirements |
48 |
SSDP Stack Stress Test |
Flood with SSDP messages |
Stack remains stable |
49 |
SSDP Stack Interoperability |
Test with other UPnP stacks |
SSDP messages are compatible |
50 |
SSDP Stack Certification |
Run certification suite |
SSDP passes all UPnP tests |
Cross Platform - Testcases
S.No |
Test Case |
Description |
Expected Result |
---|---|---|---|
1 |
SSDP on Windows |
Run SSDP on Windows OS |
SSDP messages sent and received correctly |
2 |
SSDP on Linux |
Run SSDP on Linux OS |
SSDP functions as expected |
3 |
SSDP on macOS |
Run SSDP on macOS |
SSDP discovery and response work |
4 |
SSDP on Android |
Run SSDP on Android device |
SSDP messages are handled correctly |
5 |
SSDP on iOS |
Run SSDP on iOS device |
SSDP discovery and notifications work |
6 |
SSDP on Embedded Linux |
Run SSDP on embedded system |
SSDP operates within resource limits |
7 |
SSDP on Windows Subsystem for Linux |
Run SSDP in WSL |
SSDP messages are correctly routed |
8 |
SSDP on Docker Container |
Run SSDP inside container |
SSDP multicast works across bridge network |
9 |
SSDP on Virtual Machine |
Run SSDP in VM |
SSDP messages are received via virtual NIC |
10 |
SSDP on Raspberry Pi |
Run SSDP on Raspberry Pi |
SSDP discovery and response work |
11 |
SSDP on Smart TV |
Run SSDP on smart TV OS |
SSDP messages are correctly handled |
12 |
SSDP on NAS Device |
Run SSDP on network storage |
SSDP announces services correctly |
13 |
SSDP on IoT Device |
Run SSDP on IoT firmware |
SSDP messages are sent and received |
14 |
SSDP on Windows Firewall |
SSDP with firewall enabled |
SSDP messages are allowed or blocked per rules |
15 |
SSDP on Linux iptables |
SSDP with iptables rules |
SSDP multicast is permitted |
16 |
SSDP on macOS Firewall |
SSDP with macOS firewall |
SSDP messages are allowed |
17 |
SSDP on Android Network Stack |
SSDP on mobile data/Wi-Fi |
SSDP works across interfaces |
18 |
SSDP on iOS Background Mode |
SSDP in background mode |
SSDP continues to function |
19 |
SSDP on Dual Boot System |
SSDP across OS boots |
SSDP works consistently |
20 |
SSDP on Cross-Architecture |
SSDP on ARM vs x86 |
SSDP behavior is consistent |
21 |
SSDP on Cloud VM |
SSDP on AWS/GCP VM |
SSDP multicast works with proper config |
22 |
SSDP on Hypervisor |
SSDP on KVM/VMware |
SSDP messages are routed correctly |
23 |
SSDP on Network Bridge |
SSDP across bridged interfaces |
SSDP multicast is preserved |
24 |
SSDP on Host-Only Network |
SSDP in isolated network |
SSDP messages are visible to host only |
25 |
SSDP on VPN |
SSDP over VPN tunnel |
SSDP messages may be blocked or rerouted |
26 |
SSDP on Proxy |
SSDP behind proxy |
SSDP may not function unless allowed |
27 |
SSDP on NAT |
SSDP behind NAT |
SSDP works within local subnet |
28 |
SSDP on IPv4 |
SSDP over IPv4 stack |
SSDP messages are sent and received |
29 |
SSDP on IPv6 |
SSDP over IPv6 stack |
SSDP messages are sent and received |
30 |
SSDP on Mixed IP Stack |
SSDP on dual-stack system |
SSDP works on both IP versions |
31 |
SSDP on Mobile Hotspot |
SSDP over hotspot network |
SSDP messages are routed correctly |
32 |
SSDP on Wi-Fi |
SSDP over wireless network |
SSDP multicast is supported |
33 |
SSDP on Ethernet |
SSDP over wired network |
SSDP multicast is supported |
34 |
SSDP on Bluetooth PAN |
SSDP over Bluetooth network |
SSDP may be unsupported or limited |
35 |
SSDP on Satellite Link |
SSDP over satellite network |
SSDP may experience latency |
36 |
SSDP on Mesh Network |
SSDP in mesh topology |
SSDP messages propagate correctly |
37 |
SSDP on Cloud Gateway |
SSDP through cloud gateway |
SSDP messages are forwarded |
38 |
SSDP on SDN |
SSDP in software-defined network |
SSDP routing is programmable |
39 |
SSDP on VLAN |
SSDP across VLANs |
SSDP multicast may be restricted |
40 |
SSDP on Network Emulator |
SSDP in simulated environment |
SSDP behavior is consistent |
41 |
SSDP on Test Harness |
SSDP in automated test rig |
SSDP messages are validated |
42 |
SSDP on CI/CD Pipeline |
SSDP in continuous testing |
SSDP tests pass across platforms |
43 |
SSDP on Legacy OS |
SSDP on older OS versions |
SSDP may require compatibility tweaks |
44 |
SSDP on Real-Time OS |
SSDP on RTOS |
SSDP timing is precise |
45 |
SSDP on Web Browser |
SSDP via browser extension |
SSDP messages are visible in dev tools |
46 |
SSDP on Node.js |
SSDP via Node.js library |
SSDP messages are correctly handled |
47 |
SSDP on Python |
SSDP via Python script |
SSDP discovery and response work |
48 |
SSDP on Java |
SSDP via Java UPnP stack |
SSDP messages are parsed correctly |
49 |
SSDP on .NET |
SSDP via .NET UPnP library |
SSDP messages are handled correctly |
50 |
SSDP on Cross-Platform SDK |
SSDP via SDK (e.g., Qt) |
SSDP works across OS targets |
Reference links