Skip to content

Instantly share code, notes, and snippets.

@dev-zzo
Last active October 28, 2023 10:21
Show Gist options
  • Save dev-zzo/97799d65482046809da6 to your computer and use it in GitHub Desktop.
Save dev-zzo/97799d65482046809da6 to your computer and use it in GitHub Desktop.
UPnP fun
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<URLBase>http://172.16.90.254:49152</URLBase>
<device>
<deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType>
<friendlyName>Cisco VPN Router</friendlyName>
<manufacturer>Cisco Systems.</manufacturer>
<manufacturerURL>http://www.cisco.com</manufacturerURL>
<modelDescription>Cisco VPN Router</modelDescription>
<modelName>4-Port Gigabit Security Router with VPN</modelName>
<modelNumber>RVS4000</modelNumber>
<modelURL>http://www.cisco.com</modelURL>
<serialNumber>123456789</serialNumber>
<UDN>uuid:21dd144e-1dd2-11b2-baca-e05fb90c3793</UDN>
<UPC>RVS4000</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1</serviceType>
<serviceId>urn:upnp-org:serviceId:L3Forwarding1</serviceId>
<controlURL>/upnp/control/L3Forwarding1</controlURL>
<eventSubURL>/upnp/event/L3Forwarding1</eventSubURL>
<SCPDURL>/l3frwd.xml</SCPDURL>
</service>
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType>
<friendlyName>WANDevice</friendlyName>
<manufacturer>Cisco Systems.</manufacturer>
<manufacturerURL>http://www.cisco.com/</manufacturerURL>
<modelDescription>Residential Gateway</modelDescription>
<modelName>Internet Connection Sharing</modelName>
<modelNumber>1</modelNumber>
<modelURL>http://www.cisco.com/</modelURL>
<serialNumber>0000001</serialNumber>
<UDN>uuid:21da5cfe-1dd2-11b2-baca-e05fb90c3793</UDN>
<UPC>RVS4000</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
<controlURL>/upnp/control/WANCommonIFC1</controlURL>
<eventSubURL>/upnp/event/WANCommonIFC1</eventSubURL>
<SCPDURL>/cmnicfg.xml</SCPDURL>
</service>
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType>
<friendlyName>WANConnectionDevice</friendlyName>
<manufacturer>Cisco Systems.</manufacturer>
<manufacturerURL>http://www.cisco.com/</manufacturerURL>
<modelDescription>Residential Gateway</modelDescription>
<modelName>Internet Connection Sharing</modelName>
<modelNumber>1</modelNumber>
<modelURL>http://www.cisco.com/</modelURL>
<serialNumber>0000001</serialNumber>
<UDN>uuid:21d7a6f8-1dd2-11b2-a4d7-e05fb90c3793</UDN>
<UPC>RVS4000</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:WANEthernetLinkConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANEthLinkC1</serviceId>
<controlURL>/upnp/control/WANEthLinkC1</controlURL>
<eventSubURL>/upnp/event/WANEthLinkC1</eventSubURL>
<SCPDURL>/wanelcfg.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
<controlURL>/upnp/control/WANIPConn1</controlURL>
<eventSubURL>/upnp/event/WANIPConn1</eventSubURL>
<SCPDURL>/ipcfg.xml</SCPDURL>
</service>
</serviceList>
</device>
</deviceList>
</device>
<device>
<deviceType>urn:schemas-upnp-org:device:LANDevice:1</deviceType>
<friendlyName>LANDevice</friendlyName>
<manufacturer>Cisco Systems.</manufacturer>
<manufacturerURL>http://www.cisco.com/</manufacturerURL>
<modelDescription>Residential Gateway</modelDescription>
<modelName>Residential Gateway</modelName>
<modelNumber>1</modelNumber>
<modelURL>http://www.cisco.com/</modelURL>
<serialNumber>0000001</serialNumber>
<UDN>uuid:21d49a08-1dd2-11b2-b477-e05fb90c3792</UDN>
<UPC>RVS4000</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:LANHostConfigManagement:1</serviceType>
<serviceId>urn:upnp-org:serviceId:LANHostCfg1</serviceId>
<controlURL>/upnp/control/LANHostCfg1</controlURL>
<eventSubURL>/upnp/event/LANHostCfg1</eventSubURL>
<SCPDURL>/lanhostc.xml</SCPDURL>
</service>
</serviceList>
</device>
</deviceList>
<presentationURL>http://172.16.90.254/index.htm</presentationURL>
</device>
</root>
<?xml version="1.0"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>SetConnectionType</name>
<argumentList>
<argument>
<name>NewConnectionType</name>
<direction>in</direction>
<relatedStateVariable>ConnectionType</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetConnectionTypeInfo</name>
<argumentList>
<argument>
<name>NewConnectionType</name>
<direction>out</direction>
<relatedStateVariable>ConnectionType</relatedStateVariable>
</argument>
<argument>
<name>NewPossibleConnectionTypes</name>
<direction>out</direction>
<relatedStateVariable>PossibleConnectionTypes</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>RequestConnection</name>
</action>
<action>
<name>ForceTermination</name>
</action>
<action>
<name>GetStatusInfo</name>
<argumentList>
<argument>
<name>NewConnectionStatus</name>
<direction>out</direction>
<relatedStateVariable>ConnectionStatus</relatedStateVariable>
</argument>
<argument>
<name>NewLastConnectionError</name>
<direction>out</direction>
<relatedStateVariable>LastConnectionError</relatedStateVariable>
</argument>
<argument>
<name>NewUptime</name>
<direction>out</direction>
<relatedStateVariable>Uptime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetNATRSIPStatus</name>
<argumentList>
<argument>
<name>NewRSIPAvailable</name>
<direction>out</direction>
<relatedStateVariable>RSIPAvailable</relatedStateVariable>
</argument>
<argument>
<name>NewNATEnabled</name>
<direction>out</direction>
<relatedStateVariable>NATEnabled</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetGenericPortMappingEntry</name>
<argumentList>
<argument>
<name>NewPortMappingIndex</name>
<direction>in</direction>
<relatedStateVariable>PortMappingNumberOfEntries</relatedStateVariable>
</argument>
<argument>
<name>NewRemoteHost</name>
<direction>out</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>out</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>out</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>out</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>out</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>out</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>out</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>out</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetSpecificPortMappingEntry</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>out</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>out</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>out</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>out</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>out</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>AddPortMapping</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>in</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>in</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>in</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>in</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>in</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>DeletePortMapping</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetExternalIPAddress</name>
<argumentList>
<argument>
<name>NewExternalIPAddress</name>
<direction>out</direction>
<relatedStateVariable>ExternalIPAddress</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>ConnectionType</name>
<dataType>string</dataType>
<defaultValue>Unconfigured</defaultValue>
</stateVariable>
<stateVariable sendEvents="yes">
<name>PossibleConnectionTypes</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>Unconfigured</allowedValue>
<allowedValue>IP_Routed</allowedValue>
<allowedValue>IP_Bridged</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ConnectionStatus</name>
<dataType>string</dataType>
<defaultValue>Unconfigured</defaultValue>
<allowedValueList>
<allowedValue>Unconfigured</allowedValue>
<allowedValue>Connecting</allowedValue>
<allowedValue>Authenticating</allowedValue>
<allowedValue>PendingDisconnect</allowedValue>
<allowedValue>Disconnecting</allowedValue>
<allowedValue>Disconnected</allowedValue>
<allowedValue>Connected</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>Uptime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
<allowedValueRange>
<minimum>0</minimum>
<maximum></maximum>
<step>1</step>
</allowedValueRange>
</stateVariable>
<stateVariable sendEvents="no">
<name>RSIPAvailable</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>NATEnabled</name>
<dataType>boolean</dataType>
<defaultValue>1</defaultValue>
</stateVariable>
<stateVariable sendEvents="yes">
<name>X_Name</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>LastConnectionError</name>
<dataType>string</dataType>
<defaultValue>ERROR_NONE</defaultValue>
<allowedValueList>
<allowedValue>ERROR_NONE</allowedValue>
<allowedValue>ERROR_ISP_TIME_OUT</allowedValue>
<allowedValue>ERROR_COMMAND_ABORTED</allowedValue>
<allowedValue>ERROR_NOT_ENABLED_FOR_INTERNET</allowedValue>
<allowedValue>ERROR_BAD_PHONE_NUMBER</allowedValue>
<allowedValue>ERROR_USER_DISCONNECT</allowedValue>
<allowedValue>ERROR_ISP_DISCONNECT</allowedValue>
<allowedValue>ERROR_IDLE_DISCONNECT</allowedValue>
<allowedValue>ERROR_FORCED_DISCONNECT</allowedValue>
<allowedValue>ERROR_SERVER_OUT_OF_RESOURCES</allowedValue>
<allowedValue>ERROR_RESTRICTED_LOGON_HOURS</allowedValue>
<allowedValue>ERROR_ACCOUNT_DISABLED</allowedValue>
<allowedValue>ERROR_ACCOUNT_EXPIRED</allowedValue>
<allowedValue>ERROR_PASSWORD_EXPIRED</allowedValue>
<allowedValue>ERROR_AUTHENTICATION_FAILURE</allowedValue>
<allowedValue>ERROR_NO_DIALTONE</allowedValue>
<allowedValue>ERROR_NO_CARRIER</allowedValue>
<allowedValue>ERROR_NO_ANSWER</allowedValue>
<allowedValue>ERROR_LINE_BUSY</allowedValue>
<allowedValue>ERROR_UNSUPPORTED_BITSPERSECOND</allowedValue>
<allowedValue>ERROR_TOO_MANY_LINE_ERRORS</allowedValue>
<allowedValue>ERROR_IP_CONFIGURATION</allowedValue>
<allowedValue>ERROR_UNKNOWN</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ExternalIPAddress</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>RemoteHost</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>ExternalPort</name>
<dataType>ui2</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>InternalPort</name>
<dataType>ui2</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingProtocol</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>TCP</allowedValue>
<allowedValue>UDP</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>InternalClient</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingDescription</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingEnabled</name>
<dataType>boolean</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingLeaseDuration</name>
<dataType>ui4</dataType>
</stateVariable>
<stateVariable sendEvents="yes">
<name>PortMappingNumberOfEntries</name>
<dataType>ui2</dataType>
</stateVariable>
</serviceStateTable>
</scpd>
import sys
import socket
import struct
import xml.etree.ElementTree as ElementTree
UPNP_DEVICE_NS = 'urn:schemas-upnp-org:device-1-0'
UPNP_SERVICE_NS = 'urn:schemas-upnp-org:service-1-0'
UPNP_CONTROL_NS = 'urn:schemas-upnp-org:control-1-0'
# Used by Element.find()
UPNP_NS_MAP = {
'device': UPNP_DEVICE_NS,
'service': UPNP_SERVICE_NS,
'control': UPNP_CONTROL_NS,
}
# Used by writer
ElementTree.register_namespace('soap', 'http://schemas.xmlsoap.org/soap/envelope/')
ElementTree.register_namespace('device', UPNP_DEVICE_NS)
ElementTree.register_namespace('service', UPNP_SERVICE_NS)
ElementTree.register_namespace('control', UPNP_CONTROL_NS)
#
# HTTP related code
#
HTTP_DEBUG = True
class HttpTransport(object):
"Implements a base class for HTTP transport protocols"
def __init__(self, type, proto, timeout=5):
self.s = socket.socket(socket.AF_INET, type, proto)
self.s.settimeout(timeout)
def __del__(self):
if self.s:
self.close()
def is_multicast(self):
return False
def recv(self):
return self.s.recvfrom(65536)
def close(self):
global HTTP_DEBUG
if HTTP_DEBUG:
print('Closing socket')
self.s.close()
self.s = None
class HttpTcpTransport(HttpTransport):
"Implements HTTP over TCP"
def __init__(self, remote_addr, timeout=5):
global HTTP_DEBUG
HttpTransport.__init__(self, socket.SOCK_STREAM, socket.IPPROTO_TCP, timeout)
self.remote_addr = remote_addr
if HTTP_DEBUG:
print('Connecting to %s:%d.' % remote_addr)
self.s.connect(remote_addr)
def send(self, data):
self.s.send(data)
def recv(self):
return (self.s.recv(65536), self.remote_addr)
class HttpUdpTransport(HttpTransport):
"Implements HTTP over (unicast) UDP"
def __init__(self, remote_addr, timeout=5):
HttpTransport.__init__(self, socket.SOCK_DGRAM, socket.IPPROTO_UDP, timeout)
self.remote_addr = remote_addr
def send(self, data):
self.s.sendto(data, self.remote_addr)
class HttpUdpUnicastTransport(HttpUdpTransport):
"Implements HTTP over unicast UDP"
pass
class HttpUdpMulticastTransport(HttpUdpTransport):
"Implements HTTP over multicast UDP"
def __init__(self, remote_addr, bind_addr, mcast_ip, timeout=5):
"""Initialise the transport.
remote_addr: remote endpoint address (as in socket address)
bind_addr: local address to bind to (as in socket address)
mcast_ip: multicast group IP address (typically same as in remote_addr)
"""
HttpUdpTransport.__init__(self, remote_addr, timeout)
#self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.s.bind(bind_addr)
self.s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 32)
self.s.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton(bind_addr[0]))
mreq = socket.inet_aton(mcast_ip) + socket.inet_aton(bind_addr[0])
self.s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
def is_multicast(self):
return True
def xlines(text):
"Iterate over lines in text."
index = 0
while True:
next_index = text.find("\n", index)
if next_index == -1:
raise StopIteration
if text[next_index - 1] == "\r":
line = text[index:next_index - 1]
else:
line = text[index:next_index]
index = next_index + 1
yield line
class HttpClient(object):
"""Implements a simple HTTP client via various transports.
Currently not implemented:
* Keep-alive connections
Quirks:
* Some HTTP servers don't respond at all when protocol is set to 1.0.
"""
def __init__(self, transport, version='1.1'):
self.http_version = version
self._tr = transport
def request(self, method, url, headers=None, body=None):
"""Perform a HTTP request.
method: HTTP method to be sent in request line
url: URL to be sent in request line
headers: additional headers to be sent
body: request body to be sent
Returns:
* Unicast transport: a tuple (status, headers, body)
* Multicast transport: a list of tuples (addr, status, headers, body)
"""
global HTTP_DEBUG
request_lines = [ '%s %s HTTP/%s' % (method, url, self.http_version) ]
has_host = False
if headers:
for header, value in headers.iteritems():
header = header.upper()
has_host = has_host or header == 'HOST'
request_lines.append('%s: %s' % (header, str(value)))
if not has_host:
request_lines.append('HOST: %s:%d' % self._tr.remote_addr)
if body:
request_lines.append('CONTENT-LENGTH: %d' % len(body))
request_lines.append('\r\n')
headers_text = '\r\n'.join(request_lines)
if HTTP_DEBUG:
print('Sending headers:')
print(headers_text)
self._tr.send(headers_text)
if body:
if HTTP_DEBUG:
print('Sending body (%d bytes)' % len(body))
print(body)
self._tr.send(body)
if self._tr.is_multicast():
responses = []
try:
while True:
responses.append(self._do_recv())
except socket.timeout:
pass
return responses
else:
response = self._do_recv()
return (response[1], response[2], response[3])
def _do_recv(self):
"Internal routine. Performs response reception."
global HTTP_DEBUG
response = ''
end_of_headers = -1
while end_of_headers < 0:
frag, addr = self._tr.recv()
response += frag
end_of_headers = response.find("\r\n\r\n")
if end_of_headers < 0:
end_of_headers = response.find("\n\n")
body = response[end_of_headers + 4:]
headers = response[:end_of_headers + 4]
if HTTP_DEBUG:
print('Received headers:')
print(headers)
status, headers = self._parse_headers(headers)
if 'CONTENT-LENGTH' in headers:
content_length = int(headers['CONTENT-LENGTH']) - len(body)
while content_length > 0:
frag, addr = self._tr.recv()
body += frag
content_length -= len(frag)
elif 'TRANSFER-ENCODING' in headers and headers['TRANSFER-ENCODING'].lower() == 'chunked':
buffer = body
body = ''
if HTTP_DEBUG:
print('Starting chunked RX')
while True:
buffer_offset = 0
while buffer.find("\n") == -1:
frag, addr = self._tr.recv()
buffer += frag
buffer_offset = buffer.find("\n")
if buffer_offset == 0:
buffer = buffer[1:]
continue
elif buffer_offset == 1 and buffer[0] == "\r":
buffer = buffer[2:]
continue
if HTTP_DEBUG:
print("Buffer offset: %d" % buffer_offset)
if buffer[buffer_offset - 1] == "\r":
chunk_len = buffer[:buffer_offset - 1]
else:
chunk_len = buffer[:buffer_offset]
buffer_offset += 1
if chunk_len == "0":
break
chunk_len = int(chunk_len, 16)
if HTTP_DEBUG:
print("Chunk length: %d" % chunk_len)
print("Buffer length: %d" % len(buffer))
while len(buffer) - buffer_offset < chunk_len:
frag, addr = self._tr.recv()
buffer += frag
body += buffer[buffer_offset:buffer_offset + chunk_len]
buffer = buffer[buffer_offset + chunk_len:]
else:
# Unknown transfer method
pass
return (addr, status, headers, body)
def _parse_headers(self, text):
"Internal routine. Performs header parsing."
lines = xlines(text)
status = lines.next()
headers = {}
for line in lines:
if len(line) == 0:
break
sep_index = line.find(':')
if sep_index < 0:
continue
header = line[:sep_index].upper()
sep_index += 1
try:
while line[sep_index] == ' ' or line[sep_index] == '\t':
sep_index += 1
value = line[sep_index:]
except:
value = ''
headers[header] = value
return (status, headers)
# End of HttpClient
class URIParseError(Exception):
pass
class URL(object):
"Simple URL parser/combiner"
def __init__(self, text):
self.scheme = ''
self.domain = ''
self.port = 0
self.path = ''
self.query = ''
self.frag = ''
self.__parse(text)
def __parse(self, text):
offset = 0
scheme_delim = text.find('://', offset)
if scheme_delim >= 0:
self.scheme = text[:scheme_delim]
offset = scheme_delim + 3
path_delim = text.find('/', offset)
if path_delim < 0:
raise URIParseError('URL format is incorrect (no path)')
port_delim = text.find(':', offset, path_delim)
if port_delim >= 0:
self.domain = text[offset:port_delim]
self.port = int(text[port_delim + 1:path_delim])
else:
self.domain = text[offset:path_delim]
query_delim = text.find('?', path_delim)
if query_delim >= 0:
frag_delim = text.find('#', query_delim)
if frag_delim >= 0:
self.frag = text[frag_delim + 1:]
self.query = text[query_delim + 1:frag_delim]
else:
self.query = text[query_delim + 1:]
self.path = text[path_delim:query_delim]
else:
self.path = text[path_delim:]
def __str__(self):
text = ''
if self.scheme:
text += self.scheme + '://'
text += self.domain
if self.port:
text += ':%d' % self.port
text += self.path
if self.query:
text += '?' + self.query
if self.frag:
text += '#' + self.frag
return text
# End of URL
class URN(object):
"Simple URN parser/combiner"
def __init__(self, text):
self.nid = ''
self.frags = []
self.__parse(text)
def __parse(self, text):
if not text.startswith('urn:'):
raise URIParseError('Text does not start with "urn:"')
offset = 4
sep_index = text.find(':', offset)
self.nid = text[offset:sep_index]
offset = sep_index + 1
while True:
sep_index = text.find(':', offset)
if sep_index >= 0:
self.frags.append(text[offset:sep_index])
offset = sep_index + 1
else:
self.frags.append(text[offset:])
break
def __str__(self):
text = 'urn:%s:' % self.nid
text += ':'.join(self.frags)
return text
# End of URN
def http_get(url, headers=None):
"Shortcut for GETting a URL via HTTP/TCP"
url = URL(url)
port = url.port
if not port:
port = 80
return HttpClient(HttpTcpTransport((url.domain, port))).request('GET', url.path, headers)
def http_post(url, headers=None, body=None):
"Shortcut for POSTting to a URL via HTTP/TCP"
url = URL(url)
port = url.port
if not port:
port = 80
return HttpClient(HttpTcpTransport((url.domain, port))).request('POST', url.path, headers, body)
#
# SSDP client code
#
class SsdpSearchResult(object):
def __init__(self, ipaddr, headers):
self.ipaddr = ipaddr
self.server = headers.get('SERVER')
self.location = headers.get('LOCATION')
self.search_type = headers.get('ST')
self.usn = headers.get('USN')
def __str__(self):
return 'SSDP search result:\r\n IP: %s\r\n Server: %s\r\n Location: %s\r\n USN: %s' % (self.ipaddr, self.server, self.location, self.usn)
def __eq__(self, other):
return self.ipaddr == other.ipaddr and self.usn == other.usn
def __ne__(self, other):
return not (self == other)
SSDP_MULTICAST_IPv4 = '239.255.255.250'
SSDP_PORT = 1900
def ssdp_search(transport, search_type):
return HttpClient(transport).request('M-SEARCH', '*', {
'HOST': '%s:%d' % (SSDP_MULTICAST_IPv4, SSDP_PORT),
'ST': search_type,
'MAN': '"ssdp:discover"',
'MX': 1,
})
def ssdp_search_uni(target_ip, search_type, timeout=5):
"Perform a unicast SSDP M-SEARCH request"
target_addr = (target_ip, SSDP_PORT)
tr = HttpUdpUnicastTransport(target_addr, timeout)
rsp = ssdp_search(tr, search_type)
return SsdpSearchResult(target_ip, rsp[1])
def ssdp_search_multi(bind_addr, search_type, timeout=5):
"Perform a multicast SSDP M-SEARCH request"
tr = HttpUdpMulticastTransport(
(SSDP_MULTICAST_IPv4, SSDP_PORT),
bind_addr,
SSDP_MULTICAST_IPv4,
timeout)
results = []
for rsp in ssdp_search(tr, search_type):
result = SsdpSearchResult(rsp[0][0], rsp[2])
if result not in results:
results.append(result)
return results
#
# UPnP client code
#
UPNP_DEBUG = True
class UpnpError(Exception):
pass
def clean_tag(tag):
i = tag.find('}')
if i < 0:
return tag
return tag[i+1:]
class UpnpServiceAction(object):
"Describes a UPnP service action"
def __init__(self):
self.name = None
self.args_in = []
self.args_out = []
def __str__(self):
return '%s(%s)' % (self.name, ', '.join(self.args_in))
__repr__ = __str__
@staticmethod
def from_xml(xml):
o = UpnpServiceAction()
for child in xml:
tag = clean_tag(child.tag)
if tag == 'name':
o.name = child.text
elif tag == 'argumentList':
for arg_child in child:
arg_name, arg_dir = UpnpServiceAction._parse_arg(arg_child)
if arg_dir == 'in':
o.args_in.append(arg_name)
# Can't be bothered with args_out...
return o
@staticmethod
def _parse_arg(xml):
arg_name = None
arg_dir = None
for child in xml:
tag = clean_tag(child.tag)
if tag == 'name':
arg_name = child.text
elif tag == 'direction':
arg_dir = child.text.lower()
return (arg_name, arg_dir)
# End of UpnpServiceAction
class UpnpServiceDescriptor(object):
"Dscribes service actions and state vars"
def __init__(self):
self.actions = {}
def __str__(self):
return "\r\n".join([str(a) for a in self.actions])
__repr__ = __str__
@staticmethod
def from_xml(xml):
#print('UpnpServiceDescriptor.from_xml()')
o = UpnpServiceDescriptor()
n = xml.find('service:actionList', UPNP_NS_MAP)
if n is not None:
for child in n:
action = UpnpServiceAction.from_xml(child)
o.actions[action.name] = action
return o
# End of UpnpServiceDescriptor
class UpnpService(object):
"Describes a UPnP service instance"
def __init__(self, root):
self._root = root
# These describe the service type
self.type = None
self.type_urn = None
self.scpd_url = None
# These describe the service instance
self.id = None
self.control_url = None
self.event_sub_url = None
def __str__(self):
return 'Service %s (type %s)' % (self.id, self.type)
__repr__ = __str__
@staticmethod
def from_xml(xml, root):
#print('UpnpService.from_xml()')
o = UpnpService(root)
for child in xml:
tag = clean_tag(child.tag)
if tag == 'serviceType':
o.type_urn = URN(child.text)
o.type = ':'.join(o.type_urn.frags[1:])
elif tag == 'SCPDURL':
o.scpd_url = child.text
elif tag == 'serviceId':
o.id = ':'.join(URN(child.text).frags[1:])
elif tag == 'controlURL':
o.control_url = child.text
elif tag == 'eventSubURL':
o.events_url = child.text
return o
def get_descriptor(self):
try:
return self._descriptor
except:
scpd_url = self.scpd_url
if self._root.url_base is not None:
scpd_url = self._root.url_base + scpd_url
sd = self._descriptor = self._root.get_scpd(self.type, scpd_url)
return sd
def invoke(self, action, **kwargs):
sd = self.get_descriptor()
# Don't bother with XML tools...
args = ['<%s>%s</%s>' % (name, value, name) for name, value in kwargs.iteritems()]
body_text = '<u:%s xmlns:u="%s">%s</u:%s>' % (action, self.type_urn, ''.join(args), action)
xml = '<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body>'+body_text+'</s:Body></s:Envelope>'
control_url = self.control_url
if self._root.url_base is not None:
control_url = self._root.url_base + control_url
headers = {
'SOAPACTION': '"%s#%s"' % (self.type_urn, action),
'CONTENT-TYPE': 'text/xml; charset="utf-8"',
}
response_status, response_headers, response_body = http_post(control_url, headers, xml)
# TODO: check HTTP status code
xml = ElementTree.XML(response_body)
xml = xml[0][0]
root_tag = clean_tag(xml.tag)
if root_tag == action + 'Response':
args_out = {}
for node in xml:
tag = clean_tag(node.tag)
args_out[tag] = node.text
return args_out
elif root_tag == 'Fault':
raise UpnpError('Fault')
else:
raise UpnpError('Unknown tag')
# End of UpnpService
class UpnpDevice(object):
"Describes a UPnP device"
def __init__(self, root):
self._root = root
self.type = None
self.type_urn = None
self.name = None
self.services = []
self.subdevices = []
def __str__(self):
return 'Device %s (type %s)' % (self.name, self.type)
__repr__ = __str__
@staticmethod
def from_xml(xml, root):
#print('UpnpDevice.from_xml()')
o = UpnpDevice(root)
for child in xml:
tag = clean_tag(child.tag)
#print tag
UpnpDevice._parse_node(o, tag, child)
return o
@staticmethod
def _parse_node(o, tag, node):
if tag == 'deviceType':
o.type_urn = URN(node.text)
o.type = ':'.join(o.type_urn.frags[1:])
elif tag == 'friendlyName':
o.name = node.text
elif tag == 'serviceList':
for child in node:
o.services.append(UpnpService.from_xml(child, o._root))
elif tag == 'deviceList':
for child in node:
o.subdevices.append(UpnpDevice.from_xml(child, o._root))
def find_services(self, service_type, results=None):
if results is None:
results = []
for s in self.services:
if s.type == service_type:
results.append(s)
for d in self.subdevices:
d.find_services(service_type, results)
return results
# End of UpnpDevice
class UpnpRootDevice(UpnpDevice):
"Describes a UPnP root device"
def __init__(self, url_base=None):
UpnpDevice.__init__(self, self)
self.url_base = url_base
self.service_types = {}
def __str__(self):
return 'Device %s (type %s)' % (self.name, self.type)
__repr__ = __str__
@staticmethod
def from_xml(xml, url_base=None):
#print('UpnpRootDevice.from_xml()')
n = xml.find('device:URLBase', UPNP_NS_MAP)
if n is not None:
url_base = n.text
n = xml.find('device:device', UPNP_NS_MAP)
if n is None:
raise Exception("no device node in device description")
o = UpnpRootDevice(url_base)
for child in n:
tag = clean_tag(child.tag)
UpnpRootDevice._parse_node(o, tag, child)
return o
@staticmethod
def _parse_node(o, tag, node):
if tag == 'manufacturer':
o.manufacturer = node.text
elif tag == 'modelName':
o.model_name = node.text
elif tag == 'modelDescription':
o.model_description = node.text
elif tag == 'modelNumber':
o.model_number = node.text
elif tag == 'UDN':
o.udn = node.text
elif tag == 'UPC':
o.upc = node.text
elif tag == 'presentationURL':
o.presentation_url = node.text
else:
UpnpDevice._parse_node(o, tag, node)
def get_scpd(self, service_type, scpd_url):
try:
return self.service_types[service_type]
except KeyError:
pass
if UPNP_DEBUG:
print('Getting SCPD')
desc_text = http_get(scpd_url)[2]
desc_xml = ElementTree.XML(desc_text)
sd = UpnpServiceDescriptor.from_xml(desc_xml)
self.service_types[service_type] = sd
return sd
# End of UpnpRootDevice
def upnp_print_schema(root, indent=''):
print('%s%s' % (indent, root))
indent += ' '
for s in root.services:
print('%s%s' % (indent, s))
sd = s.get_descriptor()
for an, a in sd.actions.iteritems():
print('%s->%s' % (indent, a))
for d in root.subdevices:
upnp_print_schema(d, indent)
def upnp_process_description(location):
print('Getting description...')
desc = http_get(location)
desc_xml = ElementTree.XML(desc[2])
# NOTE: Some device descriptors don't contain URL base.
# Use location as base, then.
base_url = URL(location)
base_url.path = ''
return UpnpRootDevice.from_xml(desc_xml, str(base_url))
def discovery_channel(bind_addr):
print('Searching for root devices...')
ssdp_results = ssdp_search_multi(bind_addr, 'upnp:rootdevice', timeout=3)
if not ssdp_results:
print('No devices found!')
return
devices = {}
for ssdp_result in ssdp_results:
print(ssdp_result)
device = upnp_process_description(ssdp_result.location)
upnp_print_schema(device)
#s = device.find_services('WANIPConnection:1')
#r = s[0].invoke('GetExternalIPAddress')
default_bind_addr = ('192.168.1.55', 2600)
discovery_channel(default_bind_addr)
#print ssdp_search_uni(sys.argv[1], 'upnp:rootdevice')
#desc_xml = ElementTree.parse('gateway.xml')
#r = UpnpRootDevice.from_xml(desc_xml)
#print r
#print r.services
#print r.subdevices
D:\Projects>upnptools.py
Searching for root devices...
SSDP search result:
IP: 192.168.1.1
Server: Linux/2.6.20.19, UPnP/1.0, Portable SDK for UPnP devices/1.4.2
Location: http://192.168.1.1:49153/gatedesc.xml
USN: uuid:8ec2446a-bfde-11d3-b78c-fcf528839fdf::upnp:rootdevice
Getting description...
Device P-2601HN-F1 (type InternetGatewayDevice:1)
Service dummy1 (type Dummy:1)
Getting SCPD
Device WAN Device (type WANDevice:1)
Service WANCommonIFC1 (type WANCommonInterfaceConfig:1)
Getting SCPD
->GetTotalPacketsSent()
->GetTotalPacketsReceived()
->GetTotalBytesReceived()
->GetTotalBytesSent()
->GetCommonLinkProperties()
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANIPConn1 (type WANIPConnection:1)
Getting SCPD
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetNATRSIPStatus()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->RequestConnection()
SSDP search result:
IP: 192.168.1.1
Server: Linux/2.6.20.19, UPnP/1.0, Portable SDK for UPnP devices/1.3.1
Location: http://192.168.1.1:49152/description.xml
USN: uuid:::upnp:rootdevice
Getting description...
Device RalinkAPS (type WFADevice:1)
Service WFAWLANConfig1 (type WFAWLANConfig:1)
Getting SCPD
->SetAPSettings(APSettings)
->PutMessage(NewInMessage)
->SetSelectedRegistrar(NewMessage)
->GetSTASettings(NewMessage)
->ResetSTA(NewMessage)
->RebootSTA(NewSTASettings)
->ResetAP(NewMessage)
->DelSTASettings(NewSTASettings)
->SetSTASettings()
->GetAPSettings(NewMessage)
->RebootAP(NewAPSettings)
->PutWLANResponse(NewMessage, NewWLANEventType, NewWLANEventMAC)
->DelAPSettings(NewAPSettings)
->GetDeviceInfo()
SSDP search result:
IP: 192.168.1.1
Server: ZyXEL-RomPlug/4.34 UPnP/1.0 RomPlug4.34
Location: http://192.168.1.1:18888/DSDeviceDescription.xml
USN: uuid:907dbbfe-bfde-11d3-9f4c-fcf528839fdf::upnp:rootdevice
Getting description...
Device P-2601HN-F1 (type InternetGatewayDevice:1)
Service L3Forwarding1 (type Layer3Forwarding:1)
Getting SCPD
->DeleteForwardingEntry(NewDestIPAddress, NewDestSubnetMask)
->GetSpecificForwardingEntry(NewDestIPAddress, NewDestSubnetMask)
->SetForwardingEntryEnable(NewDestIPAddress, NewDestSubnetMask, NewEnable)
->GetDefaultConnectionService()
->GetForwardNumberOfEntries()
->GetGenericForwardingEntry(NewForwardingIndex)
->SetDefaultConnectionService(NewDefaultConnectionService)
->AddForwardingEntry(NewType, NewDestIPAddress, NewDestSubnetMask, NewGatewayIPAddress, NewInterface, NewForwardingMet
ric, NewMTU)
Service DeviceInfo1 (type DeviceInfo:1)
Getting SCPD
->GetDeviceLog()
->SetProvisioningCode(NewProvisioningCode)
->GetInfo()
Service DeviceConfig1 (type DeviceConfig:1)
Getting SCPD
->GetPersistentData()
->FactoryReset()
->ConfigurationFinished()
->Reboot()
->ConfigurationStarted(NewSessionID)
->SetPersistentData(NewPersistentData)
Service LANConfigSecurity1 (type LANConfigSecurity:1)
Getting SCPD
->SetConfigPassword(NewPassword)
->GetInfo()
Service ManagementServer1 (type ManagementServer:1)
Getting SCPD
->SetManagementServerPassword(NewPassword)
->SetConnectionRequestAuthentication(NewConnectionRequestUsername, NewConnectionRequestPassword)
->GetInfo()
->SetUpgradeManagement(NewUpgradesManaged)
->GetKickURL()
->GetDownloadProgressURL()
->SetManagementServerURL(NewURL)
->SetPeriodicInform(NewPeriodicInformEnable, NewPeriodicInformInterval, NewPeriodicInformTime)
Service Time1 (type Time:1)
Getting SCPD
->SetNTPServers(NewNTPServer1, NewNTPServer2, NewNTPServer3, NewNTPServer4, NewNTPServer5)
->SetLocalTimeZone(NewLocalTimeZoneName)
->GetInfo()
Device WAN Device (type WANDevice:1)
Service WANCommonIFC1 (type WANCommonInterfaceConfig:1)
Getting SCPD
->GetEnabledForInternet()
->GetTotalBytesReceived()
->GetTotalBytesSent()
->SetEnabledForInternet(NewEnabledForInternet)
->GetTotalPacketsSent()
->GetTotalPacketsReceived()
->GetCommonLinkProperties()
Service WANDSLInterfaceConfig1 (type WANDSLInterfaceConfig:1)
Getting SCPD
->GetStatisticsShowtime()
->GetInfo()
->SetEnable(NewEnable)
->GetStatisticsLastShowtime()
->GetStatisticsCurrentDay()
->GetStatisticsQuarterHour()
->GetStatisticsTotal()
Service WANDSLConnectionManagement1 (type WANDSLConnectionManagement:1)
Getting SCPD
->GetGenericConnectionServiceEntry(NewConnectionServiceIndex)
->GetSpecificConnectionServiceEntry(NewWANConnectionService)
->GetWANConnectionServiceNumberOfEntries()
Service WANDSLDiagnostics1 (type WANDSLDiagnostics:1)
Getting SCPD
->GetLoopDiagnosticsResults()
->GetLoopDiagnosticsState()
->SetLoopDiagnosticsState(NewLoopDiagnosticsState)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig1 (type WANDSLLinkConfig:1)
Getting SCPD
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn1 (type WANPPPConnection:1)
Getting SCPD
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn1 (type WANIPConnection:1)
Getting SCPD
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig2 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn2 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn2 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig3 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn3 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn3 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig4 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn4 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn4 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig5 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn5 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn5 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig6 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn6 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn6 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig7 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn7 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn7 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device WAN Connection Device (type WANConnectionDevice:1)
Service WANDSLLinkConfig8 (type WANDSLLinkConfig:1)
->GetDestinationAddress()
->SetDSLLinkType(NewLinkType)
->SetDestinationAddress(NewDestinationAddress)
->SetATMQos(NewATMQoS, NewATMPeakCellRate, NewATMSustainableCellRate, NewATMMaximumBurstSize)
->GetModulationType()
->GetStatistics()
->GetDSLLinkInfo()
->SetEnable(NewEnable)
->GetAutoConfig()
->SetATMEncapsulation(NewATMEncapsulation)
->GetATMEncapsulation()
->GetInfo()
Service WANPPPConn8 (type WANPPPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetLinkLayerMaxBitRates()
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetPPPAuthenticationProtocol()
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->GetUserName()
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetPassword(NewPassword)
->RequestConnection()
->GetNATRSIPStatus()
->SetUserName(NewUserName)
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->SetMaxMRUSize(NewMaxMRUSize)
->GetPPPCompressionProtocol()
->ForceTermination()
->SetPPPoEService(NewPPPoEACName, NewPPPoEServiceName)
->SetRouteProtocolRx(NewRouteProtocolRx)
->GetPPPEncryptionProtocol()
Service WANIPConn8 (type WANIPConnection:1)
->AddPortMapping(NewRemoteHost, NewExternalPort, NewProtocol, NewInternalPort, NewInternalClient, NewEnabled, NewP
ortMappingDescription, NewLeaseDuration)
->GetInfo()
->GetExternalIPAddress()
->GetConnectionTypeInfo()
->GetPortMappingNumberOfEntries()
->SetIdleDisconnectTime(NewIdleDisconnectTime)
->GetGenericPortMappingEntry(NewPortMappingIndex)
->SetWarnDisconnectDelay(NewWarnDisconnectDelay)
->GetStatusInfo()
->SetConnectionType(NewConnectionType)
->SetIPInterfaceInfo(NewAddressingType, NewExternalIPAddress, NewSubnetMask, NewDefaultGateway)
->DeletePortMapping(NewRemoteHost, NewExternalPort, NewProtocol)
->SetConnectionTrigger(NewConnectionTrigger)
->SetAutoDisconnectTime(NewAutoDisconnectTime)
->RequestTermination()
->SetMACAddress(NewMACAddress)
->GetWarnDisconnectDelay()
->SetEnable(NewEnable)
->GetAutoDisconnectTime()
->GetIdleDisconnectTime()
->SetMaxMTUSize(NewMaxMTUSize)
->RequestConnection()
->GetNATRSIPStatus()
->GetSpecificPortMappingEntry(NewRemoteHost, NewExternalPort, NewProtocol)
->ForceTermination()
->SetRouteProtocolRx(NewRouteProtocolRx)
Device LAN Device (type LANDevice:1)
Service LANHostCfg1 (type LANHostConfigManagement:1)
Getting SCPD
->GetIPInterfaceGenericEntry(NewIPInterfaceIndex)
->GetAddressRange()
->GetInfo()
->SetIPInterface(NewEnable, NewIPAddress, NewSubnetMask, NewIPAddressingType)
->AddIPInterface(NewEnable, NewIPAddress, NewSubnetMask, NewIPAddressingType)
->GetDNSServers()
->SetDNSServer(NewDNSServers)
->GetSubnetMask()
->GetIPInterfaceSpecificEntry(NewIPAddress, NewSubnetMask)
->SetAddressRange(NewMinAddress, NewMaxAddress)
->DeleteAllowedMacAddress(NewAllowedMACAddress)
->GetIPInterfaceNumberOfEntries()
->DeleteIPInterface(NewIPAddress, NewISubnetMask)
->SetSubnetMask(NewSubnetMask)
->SetDHCPLeaseTime(NewDHCPLeaseTime)
->SetIPRouter(NewIPRouters)
->GetDHCPRelay()
->DeleteIPRouter(NewIPRouters)
->GetDHCPServerConfigurable()
->GetIPRoutersList()
->SetDHCPServerEnable(NewDHCPServerEnable)
->GetReservedAddresses()
->DeleteDNSServer(NewDNSServers)
->SetDomainName(NewDomainName)
->GetDomainName()
->SetDHCPServerConfigurable(NewDHCPServerConfigurable)
->SetReservedAddress(NewReservedAddresses)
->DeleteReservedAddress(NewReservedAddresses)
->SetAllowedMACAddresses(NewAllowedMACAddresses)
->SetAddressAllocation(NewUseAllocatedWAN, NewAssociatedConnection, NewPassthroughLease, NewPassthroughMACAddress)
Service Hosts1 (type Hosts:1)
Getting SCPD
->GetGenericHostEntry(NewIndex)
->GetHostNumberOfEntries()
->DeleteHostEntry(NewMACAddress)
->GetSpecificHostEntry(NewMACAddress)
Service LANEthernetInterfaceConfig1 (type LANEthernetInterfaceConfig:1)
Getting SCPD
->SetMaxBitRate(NewMaxBitRate)
->SetDuplexMode(NewDuplexMode)
->GetInfo()
->GetStatistics()
->SetEnable(NewEnable)
->SetMACAddressControlEnabled(NewMACAddressControlEnabled)
Service LANEthernetInterfaceConfig2 (type LANEthernetInterfaceConfig:1)
->SetMaxBitRate(NewMaxBitRate)
->SetDuplexMode(NewDuplexMode)
->GetInfo()
->GetStatistics()
->SetEnable(NewEnable)
->SetMACAddressControlEnabled(NewMACAddressControlEnabled)
Service LANEthernetInterfaceConfig3 (type LANEthernetInterfaceConfig:1)
->SetMaxBitRate(NewMaxBitRate)
->SetDuplexMode(NewDuplexMode)
->GetInfo()
->GetStatistics()
->SetEnable(NewEnable)
->SetMACAddressControlEnabled(NewMACAddressControlEnabled)
Service LANEthernetInterfaceConfig4 (type LANEthernetInterfaceConfig:1)
->SetMaxBitRate(NewMaxBitRate)
->SetDuplexMode(NewDuplexMode)
->GetInfo()
->GetStatistics()
->SetEnable(NewEnable)
->SetMACAddressControlEnabled(NewMACAddressControlEnabled)
Service WLANCfg1 (type WLANConfiguration:1)
Getting SCPD
->SetBasBeaconSecurityProperties(NewBasicEncryptionModes, NewBasicAuthenticationMode)
->GetInfo()
->GetBSSID()
->Get11iBeaconSecurityProperties()
->GetDefaultWEPKeyIndex()
->SetDefaultWEPKeyIndex(NewDefaultWEPKeyIndex)
->GetWPABeaconSecurityProperties()
->SetSecurityKeys(NewWEPKey0, NewWEPKey1, NewWEPKey2, NewWEPKey3, NewPreSharedKey, NewKeyPassphrase)
->GetRadioMode()
->SetDataTransmitRates(NewBasicDataTransmitRates, NewOperationalDataTransmitRates)
->SetBeaconType(NewBeaconType)
->SetConfig(NewMaxBitRate, NewChannel, NewSSID, NewBeaconType, NewMACAddressControlEnabled, NewBasicEncryptionModes,
NewBasicAuthenticationMode)
->GetBeaconType()
->SetRadioMode(NewRadioEnabled)
->GetSpecificAssociatedDeviceInfo(NewAssociatedDeviceMACAddress)
->SetSSID(NewSSID)
->SetWPABeaconSecurityProperties(NewWPAEncryptionModes, NewWPAAuthenticationMode)
->GetSSID()
->SetEnable(NewEnable)
->SetAutoRateFallBackMode(NewAutoRateFallBackEnabled)
->GetGenericAssociatedDeviceInfo(NewAssociatedDeviceIndex)
->GetSecurityKeys()
->GetTotalAssociations()
->GetAutoRateFallBackMode()
->GetStatistics()
->SetChannel(NewChannel)
->GetPacketStatistics()
->GetBasBeaconSecurityProperties()
->GetChannelInfo()
->Set11iBeaconSecurityProperties(NewIEEE11iEncryptionModes, NewIEEE11iAuthenticationMode)
Service WLANCfg2 (type WLANConfiguration:1)
->SetBasBeaconSecurityProperties(NewBasicEncryptionModes, NewBasicAuthenticationMode)
->GetInfo()
->GetBSSID()
->Get11iBeaconSecurityProperties()
->GetDefaultWEPKeyIndex()
->SetDefaultWEPKeyIndex(NewDefaultWEPKeyIndex)
->GetWPABeaconSecurityProperties()
->SetSecurityKeys(NewWEPKey0, NewWEPKey1, NewWEPKey2, NewWEPKey3, NewPreSharedKey, NewKeyPassphrase)
->GetRadioMode()
->SetDataTransmitRates(NewBasicDataTransmitRates, NewOperationalDataTransmitRates)
->SetBeaconType(NewBeaconType)
->SetConfig(NewMaxBitRate, NewChannel, NewSSID, NewBeaconType, NewMACAddressControlEnabled, NewBasicEncryptionModes,
NewBasicAuthenticationMode)
->GetBeaconType()
->SetRadioMode(NewRadioEnabled)
->GetSpecificAssociatedDeviceInfo(NewAssociatedDeviceMACAddress)
->SetSSID(NewSSID)
->SetWPABeaconSecurityProperties(NewWPAEncryptionModes, NewWPAAuthenticationMode)
->GetSSID()
->SetEnable(NewEnable)
->SetAutoRateFallBackMode(NewAutoRateFallBackEnabled)
->GetGenericAssociatedDeviceInfo(NewAssociatedDeviceIndex)
->GetSecurityKeys()
->GetTotalAssociations()
->GetAutoRateFallBackMode()
->GetStatistics()
->SetChannel(NewChannel)
->GetPacketStatistics()
->GetBasBeaconSecurityProperties()
->GetChannelInfo()
->Set11iBeaconSecurityProperties(NewIEEE11iEncryptionModes, NewIEEE11iAuthenticationMode)
Service WLANCfg3 (type WLANConfiguration:1)
->SetBasBeaconSecurityProperties(NewBasicEncryptionModes, NewBasicAuthenticationMode)
->GetInfo()
->GetBSSID()
->Get11iBeaconSecurityProperties()
->GetDefaultWEPKeyIndex()
->SetDefaultWEPKeyIndex(NewDefaultWEPKeyIndex)
->GetWPABeaconSecurityProperties()
->SetSecurityKeys(NewWEPKey0, NewWEPKey1, NewWEPKey2, NewWEPKey3, NewPreSharedKey, NewKeyPassphrase)
->GetRadioMode()
->SetDataTransmitRates(NewBasicDataTransmitRates, NewOperationalDataTransmitRates)
->SetBeaconType(NewBeaconType)
->SetConfig(NewMaxBitRate, NewChannel, NewSSID, NewBeaconType, NewMACAddressControlEnabled, NewBasicEncryptionModes,
NewBasicAuthenticationMode)
->GetBeaconType()
->SetRadioMode(NewRadioEnabled)
->GetSpecificAssociatedDeviceInfo(NewAssociatedDeviceMACAddress)
->SetSSID(NewSSID)
->SetWPABeaconSecurityProperties(NewWPAEncryptionModes, NewWPAAuthenticationMode)
->GetSSID()
->SetEnable(NewEnable)
->SetAutoRateFallBackMode(NewAutoRateFallBackEnabled)
->GetGenericAssociatedDeviceInfo(NewAssociatedDeviceIndex)
->GetSecurityKeys()
->GetTotalAssociations()
->GetAutoRateFallBackMode()
->GetStatistics()
->SetChannel(NewChannel)
->GetPacketStatistics()
->GetBasBeaconSecurityProperties()
->GetChannelInfo()
->Set11iBeaconSecurityProperties(NewIEEE11iEncryptionModes, NewIEEE11iAuthenticationMode)
Service WLANCfg4 (type WLANConfiguration:1)
->SetBasBeaconSecurityProperties(NewBasicEncryptionModes, NewBasicAuthenticationMode)
->GetInfo()
->GetBSSID()
->Get11iBeaconSecurityProperties()
->GetDefaultWEPKeyIndex()
->SetDefaultWEPKeyIndex(NewDefaultWEPKeyIndex)
->GetWPABeaconSecurityProperties()
->SetSecurityKeys(NewWEPKey0, NewWEPKey1, NewWEPKey2, NewWEPKey3, NewPreSharedKey, NewKeyPassphrase)
->GetRadioMode()
->SetDataTransmitRates(NewBasicDataTransmitRates, NewOperationalDataTransmitRates)
->SetBeaconType(NewBeaconType)
->SetConfig(NewMaxBitRate, NewChannel, NewSSID, NewBeaconType, NewMACAddressControlEnabled, NewBasicEncryptionModes,
NewBasicAuthenticationMode)
->GetBeaconType()
->SetRadioMode(NewRadioEnabled)
->GetSpecificAssociatedDeviceInfo(NewAssociatedDeviceMACAddress)
->SetSSID(NewSSID)
->SetWPABeaconSecurityProperties(NewWPAEncryptionModes, NewWPAAuthenticationMode)
->GetSSID()
->SetEnable(NewEnable)
->SetAutoRateFallBackMode(NewAutoRateFallBackEnabled)
->GetGenericAssociatedDeviceInfo(NewAssociatedDeviceIndex)
->GetSecurityKeys()
->GetTotalAssociations()
->GetAutoRateFallBackMode()
->GetStatistics()
->SetChannel(NewChannel)
->GetPacketStatistics()
->GetBasBeaconSecurityProperties()
->GetChannelInfo()
->Set11iBeaconSecurityProperties(NewIEEE11iEncryptionModes, NewIEEE11iAuthenticationMode)
D:\Projects>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment