Post not yet marked as solved
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?
Post not yet marked as solved
ipad lock screen app cut to background hang after unlocking and restoring the app may lead to several minutes of inability to connect to LAN devices
XCode 13.2.1 iPad ios 15.4.1
Post not yet marked as solved
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?
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.
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
Post not yet marked as solved
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?
Post not yet marked as solved
I can't submit my agreement. please tell me how to do?
Post not yet marked as solved
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.
Post not yet marked as solved
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
Post not yet marked as solved
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
Post not yet marked as solved
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.
Post not yet marked as solved
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?
Post not yet marked as solved
I cannot install ASIX USB DEVICE AX88179 for macOS Monterey Beta 4.
Is there any way to work around so I can install this device and connect to the Internet using ethernet?
Thanks!