blob: 649b6d85753daeb2635ab627fde817c44baa6f8f [file] [log] [blame]
#!/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)