• Inaky Perez-Gonzalez's avatar
    wimax/i2400m: support extended data RX protocol (no need to reallocate skbs) · fd5c565c
    Inaky Perez-Gonzalez authored
    Newer i2400m firmwares (>= v1.4) extend the data RX protocol so that
    each packet has a 16 byte header. This header is mainly used to
    implement host reordeing (which is addressed in later commits).
    
    However, this header also allows us to overwrite it (once data has
    been extracted) with an Ethernet header and deliver to the networking
    stack without having to reallocate the skb (as it happened in fw <=
    v1.3) to make room for it.
    
    - control.c: indicate the device [dev_initialize()] that the driver
      wants to use the extended data RX protocol. Also involves adding the
      definition of the needed data types in include/linux/wimax/i2400m.h.
    
    - rx.c: handle the new payload type for the extended RX data
      protocol. Prepares the skb for delivery to
      netdev.c:i2400m_net_erx().
    
    - netdev.c: Introduce i2400m_net_erx() that adds the fake ethernet
      address to a prepared skb and delivers it to the networking
      stack.
    
    - cleanup: in most instances in rx.c, the variable 'single' was
      renamed to 'single_last' for it better conveys its meaning.
    Signed-off-by: default avatarInaky Perez-Gonzalez <inaky@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fd5c565c
netdev.c 18.2 KB