'Jumbo Frame' – 9000 bytes length frames

Home Forums Discussions Support Portal 'Jumbo Frame' – 9000 bytes length frames

Tagged: ,

This topic contains 11 replies, has 3 voices, and was last updated by  Vadim Smirnov 5 months, 3 weeks ago.

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #9319

    pys
    Participant

    Hi,

    I would like to allow the ‘Jumbo Frame’ 9000 bytes length frames.

    The ‘public const int MAX_ETHER_FRAME 1514’ in ndisapi project source code in Kernel folder is changed to ‘public const int MAX_ETHER_FRAME 9000’.

    And, the ‘#define MAX_ETHER_FRAME 1514’ in ndisapi project source code in Kernel folder is changed to ‘#define MAX_ETHER_FRAME 9000’.

    However, the data length of 9000 bytes frames is not received. Only receive the data is 1514 bytes length frames.

    How can receive 9000 bytes frames to data?

    #9320

    Vadim Smirnov
    Moderator

    Yes, this is a part of required changes, but it is not enough to change this definition in common.h and rebuild ndisapi.dll. In order to enable jumbo frames you also have to enable jumbo frames in winpkfilter driver and rebuild it.

    #9321

    pys
    Participant

    When I’m purchase Developer License,
    Is it possible to get Custom build to enable jumbo frames?

    #9324

    Vadim Smirnov
    Moderator

    Yes, this is possible for your custom build.

    #9325

    pys
    Participant

    How about changing the buffer size to prevent packets from being dropped?

    #9326

    Vadim Smirnov
    Moderator

    Do you mean incoming jumbo frames?

    #9327

    pys
    Participant

    It means “buffer” in “Packets that arrive for a capture are stored in a buffer.”

    #9328

    Vadim Smirnov
    Moderator

    It also requires driver recompilation with ‘#define MAX_ETHER_FRAME 9000’.

    #9329

    pys
    Participant


    Buffer Size Setting

    ‘Buffer Size Setting’ Link is a description for changing the buffer size.
    How do you changing the buffer size, the WinpkFilter?

    #9330

    Vadim Smirnov
    Moderator

    There are actually two different things by the link you posted, socket buffer size and winpcap buffer size. If your question is about WinpkFilter driver internal buffers then for Windows Vista and later driver preallocates 1000 buffers for 1514 bytes sized packets. This value is hardcoded (changing requires driver recompile) and can’t be changed from user mode application.

    #9333

    nat32support
    Participant

    If your question is about WinpkFilter driver internal buffers then for Windows Vista and later driver preallocates 1000 buffers for 1514 bytes sized packets.

    Question: What happens if, for whatever reason, all 1000 buffers are filled before a receiver calls ReadPacket(hDriver, &Request)?

    I ask because I’m observing that the driver locks up in this case. It can still send packets but doesn’t receive any.

    If I wake it and flush the adapter queue, normal operation resumes.

    #9335

    Vadim Smirnov
    Moderator

    Question: What happens if, for whatever reason, all 1000 buffers are filled before a receiver calls ReadPacket(hDriver, &Request)?

    First, I have to note that part of this buffers (10% or 100 packets) is reserved and never placed into the adapter queue. So if packets queue grows up to 900 buffers (an example, if user mode application stops reading packets from the driver) then the driver stops placing followed packets into the queue. Instead it checks packets against loaded static filters and current adapter mode, if the packet should be passed then it is passed, if it should be dropped OR PLACED INTO THE QUEUE then is is DROPPED. Such driver behaviour allows to avoid network lock if user mode application is hangs. An example, in case of remote debugging you can set the static filter to pass TCP port 3389 (RDP) and even if you stop the filtering application in debugger (causing driver queue grow up to maximum size) you still won’t loose the RDP connection. Although, please note that all other network activity (except allowed explicitely by static filters) will be blocked.

Viewing 12 posts - 1 through 12 (of 12 total)

You must be logged in to reply to this topic.