Ethernet services

From Nintendo Switch Brew
Revision as of 18:50, 12 April 2024 by Hexkyz (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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