• Alexander Duyck's avatar
    eth: fbnic: Allocate a netdevice and napi vectors with queues · bc610777
    Alexander Duyck authored
    Allocate a netdev and figure out basics like how many queues
    we need, MAC address, MTU bounds. Kick off a service task
    to do various periodic things like health checking.
    The service task only runs when device is open.
    
    We have four levels of objects here:
     - ring - A HW ring with head / tail pointers,
     - triad - Two submission and one completion ring,
     - NAPI - NAPI, with one IRQ and any number of Rx and Tx triads,
     - Netdev - The ultimate container of the rings and napi vectors.
    
    The "triad" is the only less-than-usual construct. On Rx we have
    two "free buffer" submission rings, one for packet headers and
    one for packet data. On Tx we have separate rings for XDP Tx
    and normal Tx. So we ended up with ring triplets in both
    directions.
    
    We keep NAPIs on a local list, even though core already maintains a list.
    Later on having a separate list will matter for live reconfig.
    We introduce the list already, the churn would not be worth it.
    Signed-off-by: default avatarAlexander Duyck <alexanderduyck@fb.com>
    Link: https://patch.msgid.link/172079938358.1778861.11681469974633489463.stgit@ahduyck-xeon-server.home.arpaSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    bc610777
Makefile 332 Bytes