NetworkingDriverKit

RSS for tag

Develop drivers for USB Ethernet adapters using NetworkingDriverKit.

NetworkingDriverKit Documentation

Posts under NetworkingDriverKit tag

13 Posts
Sort by:
Post not yet marked as solved
0 Replies
97 Views
All dequed packets from sumbmission queues are enqued properly to completion queue after posting to stack. But After running heavy traffic (running iperf -b 1000m) for few times, dequeue fails and always return 0. When I check error code with dequeuePacket API it gets error 2e7. (which is underrun error) Why dequeue fails?
Posted Last updated
.
Post not yet marked as solved
1 Replies
314 Views
I have purchased the USB C hub by gravity and it has the ethernet port which is not appearing in my network settings. I have tried to see if it could be added but cant find anything. I have heard people talk about drivers but not sure what drivers or even if i need them. They dont say anything on the gravity website. Can anyone help?
Posted
by Jayys.
Last updated
.
Post marked as solved
1 Replies
279 Views
I've been creating a virtual ethernet interface. I've opened asynchronous communication with a controlling application and every time there are new packets, the controlling app is notified and then asks for the packet data. The packet data is stored in a simple struct, with uint8_t[1600] for the bytes, and uint32_t for the length. The dext is able to populate this struct with dummy data every time a packet is available, with the dummy data visible on the controlling application. However, I'm struggling to fill it with the real packet data. The IOUserNetworkPacket provides metadata about a packet. It contains a packets timestamp, size, etc, but it doesn't seem to contain the packet's data. There are the GetDataOffset() and GetMemorySegmentOffset() methods which seem to return byte offsets for where the packet data is located in their memory buffer. My instinct tells me to add this offset to the pointer of wherever the packet data is stored. The problem is I have no idea where the packets are actually stored. I know they are managed by the IOUserNetworkPacketBufferPool, but I don't think that's where their memory is. There is the CopyMemoryDescriptor() method which gives an IOMemoryDescriptor of its contents. I tried using the descriptor to create an IOMemoryMap, using it to call GetAddress(). The pointers to all the mentioned objects lead to junk data. I must be approaching this entirely wrong. If anyone knows how to access the packet data, or has any ideas, I would appreciate any help. Thanks.
Posted
by jake3.
Last updated
.
Post marked as solved
1 Replies
310 Views
I have tried extending IOUserNetworkEthernet and calling RegisterEthernetInterface. This works perfectly for one ethernet interface, though the driver crashes when RegisterEthernetInterface is called a second time (doesn't return an error code). I have tried registering with separate queues. Another approach was extending IOUserClient instead, and calling IOService::Create to create child IOUserNetworkEthernet instances. Everything about this approach works (the children appear within ioreg). However, once I call RegisterEthernetInterface on just one of the children, macOS crashes. How would I go about creating a dext with multiple ethernet interfaces? Have I been approaching it the right way? Thanks, Jake
Posted
by jake3.
Last updated
.
Post not yet marked as solved
0 Replies
353 Views
I am running a MBP intel with macOS 11.6.2 platform and 2 Thunderbolt ports. I travel much and sometimes Wifi is not available and I have to use the ethernet cable. Before upgrading to Big Sur it was automatically connecting and working well. But now the thunderbolt bridge does not connect although when I look into About this Mac, System Report, it says connected. When I switch the cable to the other port, it also reports 'connected' to the other port in the System Report. But, I have no internet connection because in the System Preferences-Network panel it reports: Thunderbolt Bridge not connected. How should I configure this? Could any one help me out?
Posted
by Lance-scs.
Last updated
.
Post not yet marked as solved
0 Replies
225 Views
I have a NetworkingDriverKit driver, and created an IOUserNetworkRxSubmissionQueue with a shared packet pool with the other queues. How is the IOUserNetworkRxSubmissionQueue initially loaded with packets? I continually get an #define kIOReturnUnderrun        iokit_common_err(0x2e7) // data underrun when I run IOUserNetworkRxSubmissionQueue->DeQueue(&packet), which I presume means it is empty. The IOUserNetworkTxSubmissionQueue->DeQueue(&packet) is successful once DataAvailable is called, so I think the queues are created correctly. I would simply Enqueue a bunch of packets to IOUserNetworkRxCompletionQueue, but in DriverKit 19 there seems to be no way to allocate a standalone packet. The IOUserNetworkRxSubmissionQueue is enabled.
Posted Last updated
.
Post not yet marked as solved
2 Replies
626 Views
My NetworkingDriverKit extension is failing on Monterey. The RegisterEthernetInterface() call is returning a result of 0x08e4bd01. This code works correctly on both Catalina and BigSur. Can't find any information on that error code. Or what might have changed for Monterey. Suggestions would be welcome! networkInit_Impl [result = RegisterEthernetInterface(ivars->fHostMAC, ivars->poolPacketBuffer, ivars->queues, 4)] Unkown_kIOReturn 8e4bd01
Posted
by sl149q.
Last updated
.
Post not yet marked as solved
5 Replies
3.5k Views
I can not activate AX88179 anymore after I have updated my mac to version 11.5 although On 11.4 Big Sur, everything was still be ok. I also check extensionsctl list on command prompt and it shows as follows: mabook@mabooks-MBP ~ % systemextensionsctl list 2 extension(s) --- com.apple.system_extension.driver_extension enabled active teamID bundleID (version) name [state] 5RHFAZ9D4P com.asix.dext.usbdevice (1.2.0/1.2.0) com.asix.dext.usbdevice [terminating for uninstall but still running] 5RHFAZ9D4P com.asix.dext.usbdevice (1.2.0/1.2.0) com.asix.dext.usbdevice [activated waiting to upgrade on reboot] How should I deal with this problem to connect to Ethernet
Posted Last updated
.
Post not yet marked as solved
0 Replies
433 Views
Hi I want to develop an iOS application running on iPAD Pro, which communicates to the custom external accessory which is connected to iPAD over USB interface. The accessory is MFI Compatible. The accessory supports multiple end points "Control, Interrupt, 4 Bulk In & 4 Bulk Out". I need help to understand what are the options in iOS to add support for USB accessory with multiple endpoints.
Posted Last updated
.
Post not yet marked as solved
1 Replies
616 Views
Looking for Driverkit examples, I see a reference to this page.. https://developer.apple.com/documentation/networkingdriverkit/connecting_a_network_driver. However the page is not found. Any idea when this example will be available?
Posted
by TomReu.
Last updated
.