• Shannon Nelson's avatar
    ionic: restrict received packets to mtu size · c37d6e3f
    Shannon Nelson authored
    Make sure the NIC drops packets that are larger than the
    specified MTU.
    
    The front end of the NIC will accept packets larger than MTU and
    will copy all the data it can to fill up the driver's posted
    buffers - if the buffers are not long enough the packet will
    then get dropped.  With the Rx SG buffers allocagted as full
    pages, we are currently setting up more space than MTU size
    available and end up receiving some packets that are larger
    than MTU, up to the size of buffers posted.  To be sure the
    NIC doesn't waste our time with oversized packets we need to
    lie a little in the SG descriptor about how long is the last
    SG element.
    
    At dealloc time, we know the allocation was a page, so the
    deallocation doesn't care about what length we put in the
    descriptor.
    Signed-off-by: default avatarShannon Nelson <snelson@pensando.io>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c37d6e3f
ionic_txrx.c 26.2 KB