In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "/dev/net/ip/top"

From WiiBrew
< /dev‎ | net
Jump to navigation Jump to search
m
(add SOGetInterfaceOpt info)
Line 159: Line 159:
 
| 0x1C  
 
| 0x1C  
 
| SOGetInterfaceOpt  
 
| SOGetInterfaceOpt  
| (vector) ?
+
| (vector 1 in 2 out) 8 bytes (u32 level, u32 optname)
|  
+
| optval, sizeof(optval)
|  
+
| see below for options
 
|-
 
|-
 
| 0x1D  
 
| 0x1D  
Line 204: Line 204:
 
|  
 
|  
 
| secret  
 
| secret  
 +
|}
 +
 +
=== GetInterfaceOpt ===
 +
SOGetInterfaceOpt works like SOGetSockOpt, except level is always 0xFFFE. The following is a list of possible values for optname and the appropriate matching optval sizes:
 +
{| class="wikitable"
 +
|-
 +
! Value
 +
! Size
 +
! Description
 +
! Typical Hex Value (for IOS58)
 +
|-
 +
| 0x1001
 +
| 4
 +
| internal function pointer
 +
| 13B59089
 +
|-
 +
| 0x1002
 +
| 4
 +
| internal function pointer
 +
| 13B59089
 +
|-
 +
| 0x1003
 +
| 4
 +
|
 +
| 00000000
 +
|-
 +
| 0x1004
 +
| 6
 +
| active interface MAC address
 +
| 000DC38A 3410
 +
|-
 +
| 0x1005
 +
| 4
 +
|
 +
| 00000001
 +
|-
 +
| 0x1006
 +
| 56
 +
| global packet/byte counters?
 +
| 00000000 00019B96 00000055 00000003 00000000 00000000 00000000 00000058 00000000 0000180B 00000007 00..
 +
|-
 +
| 0x1007
 +
| 4
 +
|
 +
| 00000000
 +
|-
 +
| 0x2001
 +
| 4
 +
|
 +
| 0000000A
 +
|-
 +
| 0x2002
 +
| 4
 +
|
 +
| 00000002
 +
|-
 +
| 0x2003
 +
| 4
 +
|
 +
| 00000005
 +
|-
 +
| 0x2004
 +
| 4
 +
|
 +
| 00000003
 +
|-
 +
| 0x2005
 +
| 256 bytes max
 +
|
 +
| zeroes
 +
|-
 +
| 0x3001
 +
| 4
 +
| hardcoded value
 +
| 00000010
 +
|-
 +
| 0x3002
 +
| multiple of 16
 +
| arp cache
 +
| struct {u32 ?, u32 ip, u8 mac[6], u8 pad[2]}[]
 +
|-
 +
| 0x4001
 +
| 64
 +
|
 +
| 00000057 00000000 00000000 00000000 00000000 00000057 0000005A 00000000 00..
 +
|-
 +
| 0x4002
 +
| 4
 +
| hardcoded value
 +
| 00000002
 +
|-
 +
| 0x4003
 +
| multiple of 12?
 +
| ip settings
 +
| struct {u32 ip, u32 netmask, u32 subnet_broadcast}[]
 +
|-
 +
| 0x4004
 +
| 4
 +
| MTU?
 +
| 000005DC
 +
|-
 +
| 0x4005
 +
| 4
 +
| hardcoded value
 +
| 00000020
 +
|-
 +
| 0x4006
 +
| multiple of 24
 +
| routing table
 +
| struct {u32 dest_ip, u32 netmask, u32 gw, u32 interface?, u64 tick?}[]
 +
|-
 +
| 0x4009
 +
| 4
 +
|
 +
| 00000000
 +
|-
 +
| 0x5001
 +
| 104
 +
|
 +
| zeroes
 +
|-
 +
| 0x6001
 +
| 72
 +
|
 +
| zeroes
 +
|-
 +
| 0x6002
 +
| 4
 +
|
 +
| 00000000
 +
|-
 +
| 0x6003
 +
| 4
 +
| harcoded value
 +
| 00000080
 +
|-
 +
| 0x6004
 +
|
 +
|
 +
|
 +
|-
 +
| 0x6009
 +
| 4
 +
|
 +
|
 +
|-
 +
| 0x600A
 +
| 4
 +
| hardcoded value
 +
| 00000080
 +
|-
 +
| 0x600B
 +
|
 +
|
 +
|
 +
|-
 +
| 0x600C
 +
| 4
 +
| hardcoded value
 +
| 00000080
 +
|-
 +
| 0x600D
 +
|
 +
|
 +
|
 +
|-
 +
| 0x600E
 +
|
 +
|
 +
| 00000080
 +
|-
 +
| 0x600F
 +
|
 +
|
 +
|
 +
|-
 +
| 0x6010
 +
|
 +
|
 +
| 00000080
 +
|-
 +
| 0x6011
 +
|
 +
|
 +
|
 +
|-
 +
| 0x7001
 +
| 136
 +
|
 +
| zeroes
 +
|-
 +
| 0x8001
 +
| 16
 +
|
 +
| 00000005 00000000 00000002 00000000
 +
|-
 +
| 0x8002
 +
| 4
 +
| active UDP sockets?
 +
| 00000003
 +
|-
 +
| 0x8003
 +
| multiple of 16
 +
| open UDP sockets?
 +
| struct {u8 8, u8 2, u16 localport, u32 localip, u8 8, u8 2, u16 remoteport, u32 remoteip}[]
 +
|-
 +
| 0x8004
 +
| 4
 +
|
 +
| 00000000
 +
|-
 +
| 0x8005
 +
|
 +
|
 +
|
 +
|-
 +
| 0x9001
 +
| 40
 +
|
 +
| 00000002 00000001 00000000 00000002 00000000 00000050 00000007 00000000 00000000 00000003
 +
|-
 +
| 0x9002
 +
| 4
 +
| active TCP sockets?
 +
| 00000001
 +
|-
 +
| 0x9003
 +
| multiple of 20
 +
| TCP sockets
 +
| struct {u32 state, u8 8, u8 2, u16 localport, u32 localip, u8 8, u8 2, u16 remoteport, u32 remoteip}[]
 +
|-
 +
| 0x9004
 +
| 4
 +
|
 +
| 00000000
 +
|-
 +
| 0x9005
 +
|
 +
|
 +
|
 +
|-
 +
| 0x9006
 +
| 4
 +
|
 +
| 00000078
 +
|-
 +
| 0x9007
 +
| 4
 +
|
 +
| 000001F4
 +
|-
 +
| 0x9008
 +
| 4
 +
|
 +
| 000000F0
 +
|-
 +
| 0x9009
 +
| 4
 +
|
 +
| 00000003
 +
|-
 +
| 0xA001
 +
| 4
 +
|
 +
| 00000002
 +
|-
 +
| 0xB001
 +
| 256 bytes max
 +
|
 +
| zeroes
 +
|-
 +
| 0xB002
 +
| 4
 +
| hardcoded value
 +
| 00000002
 +
|-
 +
| 0xB003
 +
| multiple of 4
 +
| DNS Servers
 +
| u32 dns_ips[]
 +
|-
 +
| 0xC001
 +
| 4
 +
| DHCP lease time remaining?
 +
| 000029EF
 
|}
 
|}
  
 
[[Category:Hardware]]
 
[[Category:Hardware]]

Revision as of 14:19, 13 July 2011

Socket Ioctls

Fill me in!

Function Progress

Request Number Name Input Output Notes
0x1 SOAccept 4 bytes? 0 secret
0x2 SOBind (int socket, struct sockaddr_in *address) 0
0x3 SOClose 4 bytes?
0x4 SOConnect (int socket, struct sockaddr_in *address) 0
0x5 SOFcntl
0x6 SOGetPeerName
0x7 SOGetSockName
0x8 SOGetSockOpt 0 0x18 bytes
0x9 SOSetSockOpt 0x24 bytes? 0
0xA SOListen (s32 socket, s32 backlog) secret
0xB SOPoll
0xC SORecvFrom (int socket, char * message, int msg_len, int flags)
0xD SOSendTo (int socket, char * message, int msg_len, int flags)
0xE SOShutdown 8 bytes?
0xF SOSocket 0xC bytes (int domain, int type, int protocol) 0
0x10 SOGetHostId none none returns 32-bit numeric IP
0x11 SOGetHostByName (char *hostname) hostent
0x12 SOGetHostByAddr
0x13 SOGetNameInfo (vector) ?
0x15 SOInetAtoN IPv4 address (string) IPv4 address (4 bytes) inet_aton()
0x16 SOInetPtoN
0x17 SOInetNtoP secret
0x18 SOGetAddrInfo (vector) ?
0x19 SOSockAtMark secret
0x1C SOGetInterfaceOpt (vector 1 in 2 out) 8 bytes (u32 level, u32 optname) optval, sizeof(optval) see below for options
0x1D SOSetInterfaceOpt (vector) ?
0x1E SOSetInterface secret
0x1F SOStartup 0 0
0x30 ICMPSocket secret
0x31 ICMPPing secret
0x32 ICMPCancel secret
0x33 ICMPClose secret

GetInterfaceOpt

SOGetInterfaceOpt works like SOGetSockOpt, except level is always 0xFFFE. The following is a list of possible values for optname and the appropriate matching optval sizes:

Value Size Description Typical Hex Value (for IOS58)
0x1001 4 internal function pointer 13B59089
0x1002 4 internal function pointer 13B59089
0x1003 4 00000000
0x1004 6 active interface MAC address 000DC38A 3410
0x1005 4 00000001
0x1006 56 global packet/byte counters? 00000000 00019B96 00000055 00000003 00000000 00000000 00000000 00000058 00000000 0000180B 00000007 00..
0x1007 4 00000000
0x2001 4 0000000A
0x2002 4 00000002
0x2003 4 00000005
0x2004 4 00000003
0x2005 256 bytes max zeroes
0x3001 4 hardcoded value 00000010
0x3002 multiple of 16 arp cache struct {u32 ?, u32 ip, u8 mac[6], u8 pad[2]}[]
0x4001 64 00000057 00000000 00000000 00000000 00000000 00000057 0000005A 00000000 00..
0x4002 4 hardcoded value 00000002
0x4003 multiple of 12? ip settings struct {u32 ip, u32 netmask, u32 subnet_broadcast}[]
0x4004 4 MTU? 000005DC
0x4005 4 hardcoded value 00000020
0x4006 multiple of 24 routing table struct {u32 dest_ip, u32 netmask, u32 gw, u32 interface?, u64 tick?}[]
0x4009 4 00000000
0x5001 104 zeroes
0x6001 72 zeroes
0x6002 4 00000000
0x6003 4 harcoded value 00000080
0x6004
0x6009 4
0x600A 4 hardcoded value 00000080
0x600B
0x600C 4 hardcoded value 00000080
0x600D
0x600E 00000080
0x600F
0x6010 00000080
0x6011
0x7001 136 zeroes
0x8001 16 00000005 00000000 00000002 00000000
0x8002 4 active UDP sockets? 00000003
0x8003 multiple of 16 open UDP sockets? struct {u8 8, u8 2, u16 localport, u32 localip, u8 8, u8 2, u16 remoteport, u32 remoteip}[]
0x8004 4 00000000
0x8005
0x9001 40 00000002 00000001 00000000 00000002 00000000 00000050 00000007 00000000 00000000 00000003
0x9002 4 active TCP sockets? 00000001
0x9003 multiple of 20 TCP sockets struct {u32 state, u8 8, u8 2, u16 localport, u32 localip, u8 8, u8 2, u16 remoteport, u32 remoteip}[]
0x9004 4 00000000
0x9005
0x9006 4 00000078
0x9007 4 000001F4
0x9008 4 000000F0
0x9009 4 00000003
0xA001 4 00000002
0xB001 256 bytes max zeroes
0xB002 4 hardcoded value 00000002
0xB003 multiple of 4 DNS Servers u32 dns_ips[]
0xC001 4 DHCP lease time remaining? 000029EF