• Jon Paul Maloy's avatar
    tipc: introduce send functions for chained buffers in link · 4f1688b2
    Jon Paul Maloy authored
    The current link implementation provides several different transmit
    functions, depending on the characteristics of the message to be
    sent: if it is an iovec or an sk_buff, if it needs fragmentation or
    not, if the caller holds the node_lock or not. The permutation of
    these options gives us an unwanted amount of unnecessarily complex
    code.
    
    As a first step towards simplifying the send path for all messages,
    we introduce two new send functions at link level, tipc_link_xmit2()
    and __tipc_link_xmit2(). The former looks up a link to the message
    destination, and if one is found, it grabs the node lock and calls
    the second function, which works exclusively inside the node lock
    protection. If no link is found, and the destination is on the same
    node, it delivers the message directly to the local destination
    socket.
    
    The new functions take a buffer chain where all packet headers are
    already prepared, and the correct MTU has been used. These two
    functions will later replace all other link-level transmit functions.
    
    The functions are not backwards compatible, so we have added them
    as new functions with temporary names. They are tested, but have no
    users yet. Those will be added later in this series.
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Reviewed-by: default avatarErik Hugne <erik.hugne@ericsson.com>
    Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4f1688b2
link.h 10.7 KB