Skip to content

[NetAdapterCx]Packet is not identified when decomposing it to several fragments #27

@lauriwannasleep

Description

@lauriwannasleep

Hi MS team,
We are developing our Wi-Fi NIC driver using WifiCx (currently version 1.2) and NetadapterCx (currently version 2.3) on windows 11.

For some reasons, we have to decompose our Rx AMSDU at driver side. Since the copying of data payload is not we want, we are exploring some solutions to assign the postion of payload in sub-MSDU to netadapterCx directly and copying head only. However, only when we add IEEE80211 head for each sub-msdu and put them in single fragment, the packet can be indentified. We have tried those solution below but the throughput just turned zero then.

  1. Set each packet with two fragment, the first fragment only for IEEE80211 head and LLC (including layer3 and layer4 head or not) and the second fragment for (including layer3 head/ layer4 head or not) payload. Set layer2 type to NetPacketLayer2TypeIeee80211 and fill other types and length in layout correctly.

  2. Set each packet with one fragment and filling sub-MSDU in it w/o IEEE80211 head nor LLC, setting layer2 type to NetPacketLayer2TypeNull and fill other types and length in layout correctly.

With both solution above, the Rx throughput tested by iperf3 falled 0. Once we put all the contents used in solution-one into single fragment, the packet then can be identified and the throughput turns OK. However, in that way we have to copy the payload of data.

Additionally, the offset of all fragments mentioned above are 0, and the AllocationMode and AttachmentMode of rx capability are both from system, we are going to using driver allocation and attachment mode in the future.

Is there any limitation that only after the first fragment being filled to full then the second one can be used? Do you have any suggestions for using other netadapterCx features so that I can optimize the solution?

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions