Difference between revisions of "Ethernet services"

From Nintendo Switch Brew
Jump to navigation Jump to search
 
Line 14: Line 14:
  
 
== CreateDriverService ==
 
== CreateDriverService ==
Unofficial name.
 
 
 
No input. Returns an [[#ISfDriverService]].
 
No input. Returns an [[#ISfDriverService]].
  
Line 27: Line 25:
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || [[#CreateNetworkInterfaceService]]
+
| 0 || [[#OpenNetworkInterface]]
 
|-
 
|-
| 128 ||  
+
| 128 || GetDriverInfo
 
|-
 
|-
| 129 ||  
+
| 129 || GetNetworkInterfaceList
 
|-
 
|-
| 130 ||  
+
| 130 || GetStateChangedEvent
 
|-
 
|-
| 131 ||  
+
| 131 || GetNetworkInterfaceListUpdatedEvent
 
|-
 
|-
| 384 ||  
+
| 384 || Ioctl
 
|-
 
|-
| 385 ||  
+
| 385 || IoctlRead
 
|-
 
|-
| 386 ||  
+
| 386 || IoctlWrite
 
|-
 
|-
| 387 ||  
+
| 387 || IoctlReadWrite
 
|-
 
|-
| 388 ||  
+
| 388 || IoctlSetHandle
 
|-
 
|-
| 389 ||  
+
| 389 || IoctlGetHandle
 
|}
 
|}
  
=== CreateNetworkInterfaceService ===
+
=== OpenNetworkInterface ===
Unofficial name.
 
 
 
 
Takes a type-0x21 input buffer. Returns an [[#ISfNetworkInterfaceService]].
 
Takes a type-0x21 input buffer. Returns an [[#ISfNetworkInterfaceService]].
  
Line 64: Line 60:
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 ||
+
| 0 || Duplicate
 
|-
 
|-
| 1 ||
+
| 1 || BringUp
 
|-
 
|-
| 2 ||
+
| 2 || BringDown
 
|-
 
|-
| 3 ||
+
| 3 || StartCommunication
 
|-
 
|-
| 4 ||
+
| 4 || StopCommunication
 
|-
 
|-
| 5 ||
+
| 5 || CreateSharedMemory
 
|-
 
|-
| 6 ||
+
| 6 || DestroySharedMemory
 
|-
 
|-
| 128 ||  
+
| 128 || GetNetworkInterfaceInfo
 
|-
 
|-
| 129 ||  
+
| 129 || GetStateChangedEvent
 
|-
 
|-
| 130 ||  
+
| 130 || GetRxQueue
 
|-
 
|-
| 131 ||  
+
| 131 || GetTxQueue
 
|-
 
|-
| 256 ||  
+
| 256 || SetMacAddress
 
|-
 
|-
| 257 ||  
+
| 257 || SetMru
 
|-
 
|-
| 258 ||  
+
| 258 || SetMtu
 
|-
 
|-
| 259 ||  
+
| 259 || SetFeatures
 
|-
 
|-
| 260 ||  
+
| 260 || SetMulticastFilter
 
|-
 
|-
| 261 ||  
+
| 261 || SetRxBufferSize
 
|-
 
|-
| 262 ||  
+
| 262 || SetTxBufferSize
 
|-
 
|-
| 384 ||  
+
| 384 || Ioctl
 
|-
 
|-
| 385 ||  
+
| 385 || IoctlRead
 
|-
 
|-
| 386 ||  
+
| 386 || IoctlWrite
 
|-
 
|-
| 387 ||  
+
| 387 || IoctlReadWrite
 
|-
 
|-
| 388 ||  
+
| 388 || IoctlSetHandle
 
|-
 
|-
| 389 ||  
+
| 389 || IoctlGetHandle
 
|}
 
|}
  

Latest revision as of 18:50, 12 April 2024

This is a refactored sysmodule added with [15.0.0+] for handling ethernet communication.

eth:nd

This is "nn::anif::detail::ISfDriverServiceCreator".

This was added with [15.0.0+].

Cmd Name
0 #CreateDriverService

CreateDriverService

No input. Returns an #ISfDriverService.

ISfDriverService

This is "nn::anif::detail::ISfDriverService".

This was added with [15.0.0+].

Cmd Name
0 #OpenNetworkInterface
128 GetDriverInfo
129 GetNetworkInterfaceList
130 GetStateChangedEvent
131 GetNetworkInterfaceListUpdatedEvent
384 Ioctl
385 IoctlRead
386 IoctlWrite
387 IoctlReadWrite
388 IoctlSetHandle
389 IoctlGetHandle

OpenNetworkInterface

Takes a type-0x21 input buffer. Returns an #ISfNetworkInterfaceService.

ISfNetworkInterfaceService

This is "nn::anif::detail::ISfNetworkInterfaceService".

This was added with [15.0.0+].

Cmd Name
0 Duplicate
1 BringUp
2 BringDown
3 StartCommunication
4 StopCommunication
5 CreateSharedMemory
6 DestroySharedMemory
128 GetNetworkInterfaceInfo
129 GetStateChangedEvent
130 GetRxQueue
131 GetTxQueue
256 SetMacAddress
257 SetMru
258 SetMtu
259 SetFeatures
260 SetMulticastFilter
261 SetRxBufferSize
262 SetTxBufferSize
384 Ioctl
385 IoctlRead
386 IoctlWrite
387 IoctlReadWrite
388 IoctlSetHandle
389 IoctlGetHandle

Notes

CreateInterfaceAvailableEvent is used with an all-zero DeviceFilter. QueryAvailableInterfaces is used multiple times, each time with flags=0x3. The used filters include at least the following:

System Version VendorId ProductId Description
0x057E 0x201B RTL8154B CrdA NIC
0x0B95 0x1790 AX88179 Gigabit Ethernet
0x0B95 0x7720 AX88772
0x2001 0x4A00 DUB-1312 Gigabit Ethernet Adapter
0x0BDA 0x8153 RTL8153 Gigabit Ethernet Adapter