| #!/usr/bin/env python3 |
| # Set env variable "ADDRESS" with BMC IP |
| |
| import os |
| import socket |
| import time |
| from socket import AF_INET, SOCK_DGRAM |
| |
| sock = socket.socket(AF_INET, SOCK_DGRAM) |
| |
| bmcAddr = os.environ.get("ADDRESS", "127.0.0.1") |
| addr = (bmcAddr, 427) |
| |
| print("Invalid Lang Tag Length, large payload") |
| payload = ( |
| b"\x02" # Version |
| + b"\x09" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\xff" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\x00" * 2 # XID |
| + b"\xff" * 2 # Language Tag Length |
| + b"A" * 65000 # Language Tag |
| ) |
| ret = sock.sendto(payload, addr) |
| |
| time.sleep(3) |
| |
| print("Large Lang Tag Length, large payload") |
| payload = ( |
| b"\x02" # Version |
| + b"\x09" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\xff" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\x00" * 2 # XID |
| + b"\xfd\xe8" # Language Tag Length |
| + b"A" * 65000 # Language Tag |
| ) |
| ret = sock.sendto(payload, addr) |
| |
| time.sleep(3) |
| |
| print("Invalid Lang Tag Length, small payload") |
| payload = ( |
| b"\x02" # Version |
| + b"\x09" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\xff" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\x00" * 2 # XID |
| + b"\xff" * 2 # Language Tag Length |
| + b"A" * 200 # Language Tag |
| ) |
| ret = sock.sendto(payload, addr) |
| |
| time.sleep(3) |
| |
| print("Large Lang Tag Length, small payload") |
| payload = ( |
| b"\x02" # Version |
| + b"\x09" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\xff" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\x00" * 2 # XID |
| + b"\xfd\xe8" # Language Tag Length |
| + b"A" * 200 # Language Tag |
| ) |
| ret = sock.sendto(payload, addr) |
| |
| time.sleep(3) |
| |
| print("Invalid Lang Tag Length (overflow)") |
| payload = ( |
| b"\x02" # Version |
| + b"\x09" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\xff" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\x00" * 2 # XID |
| + b"\x00\x20" # Language Tag Length |
| + b"A" * 10 # Language Tag |
| ) |
| ret = sock.sendto(payload, addr) |
| |
| time.sleep(3) |
| |
| print("slptool findsrvtypes") |
| payload = ( |
| b"\x02" # Version |
| + b"\x09" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\x1d" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\x74\xe2" # XID |
| + b"\x00\x02" # Language Tag Length |
| + b"\x65\x6e" # Language Tag (en) |
| + b"\x00\x00\xff\xff\x00\x07\x44\x45\x46\x41\x55\x4c\x54" |
| ) |
| ret = sock.sendto(payload, addr) |
| |
| time.sleep(5) |
| |
| print("slptool findsrvs service:obmc_console") |
| payload = ( |
| b"\x02" # Version |
| + b"\x01" # Function ID: SRVTYPERQST |
| + b"\x00" * 2 # Ignored Length bytes? |
| + b"\x35" # Length |
| + b"\x00" * 2 # Flags |
| + b"\x00" * 3 # Ext |
| + b"\xe5\xc2" # XID |
| + b"\x00\x02" # Language Tag Length |
| + b"\x65\x6e" # Language Tag (en) |
| + b"\x00\x00" # PR List Length |
| + b"\x00\x14service:obmc_console" # Service |
| + b"\x00\x07\x44\x45\x46\x41\x55\x4c\x54" # Scope |
| + b"\x00\x00\x00\x00" # Predicate and SLP SPI Length |
| ) |
| ret = sock.sendto(payload, addr) |