Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       dev_queue_xmit - transmit a buffer

SYNOPSIS

       int dev_queue_xmit  (struct sk_buff * skb);

ARGUMENTS

       skb    buffer to transmit

DESCRIPTION

       Queue  a  buffer  for transmission to a network device. The caller must
       have set the device and priority and built the  buffer  before  calling
       this function. The function can be called from an interrupt.

       A  negative  errno  code  is  returned on a failure. A success does not
       guarantee the frame will be transmitted as it may  be  dropped  due  to
       congestion or traffic shaping.

       -----------------------------------------------------------------------------------
       I notice this method can also return errors from the queue disciplines,
       including NET_XMIT_DROP, which is a positive value. So, errors can also
       be positive.

       Regardless of the return value, the skb is consumed, so it is currently
       difficult  to  retry a send to this method. (You can bump the ref count
       before sending to hold a reference for retry if you are careful.)

       When calling this method, interrupts MUST be enabled. This  is  because
       the BH enable code must have IRQs enabled so that it will not deadlock.
       --BLG