• chetan loke's avatar
    af-packet: TPACKET_V3 flexible buffer implementation. · f6fb8f10
    chetan loke authored
    1) Blocks can be configured with non-static frame-size.
    2) Read/poll is at a block-level(as opposed to packet-level).
    3) Added poll timeout to avoid indefinite user-space wait on idle links.
    4) Added user-configurable knobs:
       4.1) block::timeout.
       4.2) tpkt_hdr::sk_rxhash.
    
    Changes:
    C1) tpacket_rcv()
        C1.1) packet_current_frame() is replaced by packet_current_rx_frame()
              The bulk of the processing is then moved in the following chain:
              packet_current_rx_frame()
                __packet_lookup_frame_in_block
                  fill_curr_block()
                  or
                    retire_current_block
                    dispatch_next_block
                  or
                  return NULL(queue is plugged/paused)
    Signed-off-by: default avatarChetan Loke <loke.chetan@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f6fb8f10
af_packet.c 91.4 KB