ring buffer overflow - how to discard packets? - VxWorks

This is a discussion on ring buffer overflow - how to discard packets? - VxWorks ; Please help! I'm experiencing the dreaded network ring buffer overflow. Analyzing the network traffic and application response is not an option right now. So I want the system to just discard the packets and let TCP resend them. Is there ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: ring buffer overflow - how to discard packets?

  1. ring buffer overflow - how to discard packets?

    Please help! I'm experiencing the dreaded network ring buffer overflow.
    Analyzing the network traffic and application response is not an option
    right now. So I want the system to just discard the packets and let TCP
    resend them. Is there *any* way to get the VxWorks to discard network
    packets rather than overflow the ring buffer? Thank you.

  2. Re: ring buffer overflow - how to discard packets?

    Please offer your NIC type.

    Lost Distance wrote:
    > Please help! I'm experiencing the dreaded network ring buffer overflow.
    > Analyzing the network traffic and application response is not an option
    > right now. So I want the system to just discard the packets and let TCP
    > resend them. Is there *any* way to get the VxWorks to discard network
    > packets rather than overflow the ring buffer? Thank you.



  3. Re: ring buffer overflow - how to discard packets?

    We use the if_ene.o driver on assorted NE2000 compatible 10mbps ISA
    cards. Not sure if that helps much.

    icemsg wrote:
    > Please offer your NIC type.
    >
    > Lost Distance wrote:
    >
    >>Please help! I'm experiencing the dreaded network ring buffer overflow.
    >>Analyzing the network traffic and application response is not an option
    >>right now. So I want the system to just discard the packets and let TCP
    >>resend them. Is there *any* way to get the VxWorks to discard network
    >>packets rather than overflow the ring buffer? Thank you.


  4. Re: ring buffer overflow - how to discard packets?

    you can made a tradeoff between receive int ISR and netTask,by a means
    of sharing jobQueue count,such as:

    ISR()
    {
    if(jobcount {
    netjobadd ......
    jobcount++;
    }
    }


    netjobnode()
    {
    if(jobcount>0)
    jobount--;
    ...........
    }


  5. Re: ring buffer overflow - SOLVED

    I fixed it with some very grubby surgery.

    I patched the if_ene.o and netLib.o object files to insert my own newly
    written interrupt handler ahead of the existing one. I handle receive
    packets by passing them to do_protocol_with_type() if there is space in
    the netJobRing ring buffer, or dropping them if not. I handle transmit
    packets by just invoking the existing interrupt handler.

    Simple and effective. TCP retransmits the lost packets, and there are no
    more ring buffer overflows.

    I can't imagine why the idiots at WRS wouldn't even give us the option
    to drop packets from an unreliable communication medium. Instead, they
    decided that a system panic was more appropriate.

    This sort of nonsense is just one of the reasons we switched to Linux in
    new products four years ago. Alas we still have to support VxWorks in
    old products, but not for much longer. Be assured that we will break out
    the champagne the day we can finally ditch this POS called VxWorks.

    Thank you to those who replied, and my heartfelt commiserations to those
    who are unable to solve the same problem.

+ Reply to Thread