ext-sources/dlpitest.py
author an230044
Mon, 27 Sep 2010 11:32:21 +0000
branchopensolaris-2009-06
changeset 20102 2d19c462bb98
parent 13397 20f1e6b92109
child 17113 9566f46ad3bb
permissions -rwxr-xr-x
6917569 CVE-2008-5824 libaudiofile contains heap-based buffer overflow in msadpcm.c Committing for Rohini because of svn issues on opensolaris2009.06 branch.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13397
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     1
#!/usr/bin/python
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     2
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     3
import dlpi
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     4
import sys
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     5
import time
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     6
import struct
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     7
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     8
#test listlink
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
     9
linklist = dlpi.listlink()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    10
print "Found %d links:" % len(linklist)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    11
print linklist
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    12
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    13
#pick up the first data link for below testing
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    14
linkname = linklist[0]
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    15
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    16
#open link
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    17
print "opening link: " + linkname + "..."
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    18
testlink = dlpi.link(linkname)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    19
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    20
#read some info of testlink
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    21
print "linkname is %s" % testlink.get_linkname()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    22
print "link fd is %d" % testlink.get_fd()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    23
mactype = testlink.get_mactype()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    24
print "dlpi mactype is %d" % mactype
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    25
print "after convert:"
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    26
print "\tmactype is %s" % dlpi.mactype(mactype)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    27
print "\tiftype is %d" % dlpi.iftype(mactype)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    28
print "\tarptype is %d" % dlpi.arptype(mactype)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    29
bcastaddr = testlink.get_bcastaddr()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    30
print "broadcast addr is: ",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    31
print struct.unpack("BBBBBB",bcastaddr)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    32
physaddr = testlink.get_physaddr(dlpi.FACT_PHYS_ADDR)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    33
print "factory physical address is: ",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    34
print struct.unpack("BBBBBB",physaddr)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    35
print "current timeout value is %d" % testlink.get_timeout()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    36
print "sdu is:",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    37
print testlink.get_sdu()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    38
print "qos select is:",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    39
print testlink.get_qos_select()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    40
print "qos range is:",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    41
print testlink.get_qos_range()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    42
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    43
#set some config value of testlink and read them again
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    44
print "setting current physiacal addr to aa:0:10:13:27:5"
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    45
testlink.set_physaddr('\xaa\0\x10\x13\x27\5')
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    46
physaddr = testlink.get_physaddr(dlpi.CURR_PHYS_ADDR)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    47
print "current physical addr is: ",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    48
print struct.unpack("BBBBBB",physaddr)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    49
print "set timeout value to 6..."
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    50
testlink.set_timeout(6)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    51
print "timeout value is %d" % testlink.get_timeout()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    52
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    53
#test enable/disable multicast
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    54
print "enable/disable multicast address 1:0:5e:0:0:5"
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    55
testlink.enabmulti('\1\0\x5e\0\0\5')
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    56
testlink.disabmulti('\1\0\x5e\0\0\5')
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    57
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    58
#test bind
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    59
print "binding to SAP 0x9000..."
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    60
testlink.bind(0x9000)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    61
print "sap is %x" % testlink.get_sap()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    62
print "state is: %d"  % testlink.get_state()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    63
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    64
#test send
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    65
print "sending broadcast loopback packet..."
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    66
testlink.send(bcastaddr, '\0\1\2\3\4\5')
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    67
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    68
#test notify functionality
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    69
arg = "notification callback arg"
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    70
def notify(arg, notes, value):
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    71
	print "NOTE_PROMISC_ON_PHYS notification received with arg: '%s'" % arg
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    72
print "enabled notification on NOTE_PROMISC_ON_PHYS"
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    73
id = testlink.enabnotify(dlpi.NOTE_PROMISC_ON_PHYS, notify, arg) #enable notification
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    74
testlink.promiscon() #trigger the event (will be seen while receiving pkt below)
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    75
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    76
#test receive
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    77
print "testing receiving..."
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    78
try:
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    79
	testlink.recv(0, 0) #should see NOTE_PROMISC_ON_PHYS event here
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    80
except dlpi.error, err:
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    81
	errnum, errinfo = err
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    82
	if errnum == 10006:
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    83
		pass #timeout error is expected here
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    84
	else: #test fails if reach here
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    85
		print "test failed",
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    86
		print errnum,
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    87
		print err
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    88
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    89
testlink.promiscoff()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    90
testlink.disabnotify(id) #disable notification
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    91
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    92
#test unbind
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    93
print "unbinding..."
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    94
testlink.unbind()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    95
print "sap is %x" % testlink.get_sap()
20f1e6b92109 2008-09-04 Laszlo (Laca) Peter <[email protected]>
laca
parents:
diff changeset
    96
print "state is: %d"  % testlink.get_state()