af-packet: TPACKET_V3 flexible buffer implementation.
authorchetan loke <loke.chetan@gmail.com>
Fri, 19 Aug 2011 10:18:16 +0000 (10:18 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 Aug 2011 02:40:40 +0000 (19:40 -0700)
commitf6fb8f100b807378fda19e83e5ac6828b638603a
tree66d30265f08fbf9745e3feb9af6f5a06fe38d71b
parent0d4691ce112be025019999df5f2a5e00c03f03c2
af-packet: TPACKET_V3 flexible buffer implementation.

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: Chetan Loke <loke.chetan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/packet/af_packet.c