Skip to content
  • Vladimir Kondratiev's avatar
    wil6210: Align Rx frames on 4*n+2 by having SNAP · c406ea7c
    Vladimir Kondratiev authored
    
    
    For the networking code and for hardware network accelerators,
    it is better to have IP header 4*n aligned. On the other side,
    DMA on Rx path require buffer to be aligned on 4*n as well.
    Having 14 bytes of Ethernet header, these 2 alignment
    requests are in contradiction.
    
    To solve this, order hardware offload block to not remove
    SNAP header. This adds extra 6 bytes between addresses and
    ethertype, making it 20 bytes total. This way, both buffer and
    IP header are 4*n aligned. Remaining is only to remove SNAP
    by shifting addresses 6 bytes. This involves data copying, so
    this feature should be disabled unless required by the platform.
    
    Module parameter "rx_align_2" (bool, default - false)
    introduced to control this feature. Feature is completely disabled
    when parameter is false.
    
    Signed-off-by: default avatarVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    c406ea7c