Data Transmission

The output entry point transmits data using the specified network device.

The data to be transmitted is passed into the device driver by way of mbuf structures. The first mbuf structure in the chain must be of M_PKTHDR format. Multiple mbuf structures can be used to hold the frame. Link the mbuf structures using the m_next field of the mbuf structure.

Multiple packet transmits are supported with the mbufs being chained using the m_nextpkt field of the mbuf structure. The m_pkthdr.len field must be set to the total length of the packet. The device driver does not support mbufs from user memory (which have the M_EXT flag set).

On successful transmit requests, the device driver is responsible for freeing all the mbufs associated with the transmit request. If the device driver returns an error, the caller is responsible for the mbufs. If any of the chained packets can be transmitted, the transmit is considered successful and the device driver is responsible for all of the mbufs in the chain.

If the destination address in the packet is a broadcast address the M_BCAST flag in the m_flags field should be set prior to entering this routine. A broadcast address is defined as 0xFFFF FFFF FFFF. If the destination address in the packet is a multicast address the M_MCAST flag in the m_flags field should be set prior to entering this routine. A multicast address is defined as a non-individual address other than a broadcast address. The device driver keeps statistics based upon the M_BCAST and M_MCAST flags.

For packets that are shorter than the Ethernet minimum MTU size (60 bytes), the device driver pads them by adjusting the transmit length to the adapter so they can be transmitted as valid Ethernet packets.

Users are not notified by the device driver about the status of the transmission. Various statistics about data transmission are kept by the driver in the ndd structure. These statistics are part of the data returned by the NDD_GET_STATS control operation.

The output entry points are as follows:
  • bent_output for the Gigabit Ethernet-SX Adapter Device Driver (e414a816).
  • elxent_output for the 2-port 10GbE SR PCIe2 Adapter (a21910071410d003).
  • elxent_output for the PCIe2 2-port 10GbE SFP+Copper Adapter (a21910071410d103).
  • elxent_output for the 10GbE 4-port Mezzanine PCIe Adapter (a2191007df1033e7).
  • elxent_output for the Int Multifunction Card SR Optical 10GbE (a219100714100904) and Base-TX 10/100/1000 1GbE (a21910071410d203).
  • elxent_output for the Int Multifunction Card Copper SFP+ 10GbE (a219100714100a04) and Base-TX 10/100/1000 1GbE (a21910071410d203).
  • gxent_output for the Gigabit Ethernet-SX PCI Adapter Device Driver (14100401)
  • goent_output for the Gigabit Ethernet-SX PCI-X Adapter Device Driver (14106802), the 10/100/1000 Base-T Ethernet PCI-X Adapter Device Driver (14106902), the 2-Port Gigabit Ethernet-SX PCI-X Adapter Device Driver (14108802), the 2-Port 10/100/1000 Base-TX PCI-X Adapter Device Driver (14108902), the 4-Port 10/100/1000 Base-TX PCI-X Adapter Device Driver (14101103), and 4-Port 10/100/1000 Base-TX PCI-Express Adapter Device Driver (14106803), the 2-Port Gigabit Ethernet-SX PCI-Express Adapter Device Driver (14103f03), and the 2-Port 10/100/1000 Base-TX PCI-Express Adapter Device Driver (14104003).
  • hea_output for the Host Ethernet Adapter Device Driver.
  • kent_output for the PCI Ethernet Device Driver (22100020)
  • kngent_output for the 10 Gigabit Ethernet-SR PCI-X 2.0 DDR Adapter Device Driver (1410eb02) and the 10 Gigabit Ethernet-LR PCI_X 2.0 DDR Adapter Device Driver (1410ec02).
  • ment_output for the Gigabit Ethernet-SX Adapter Device Driver (14101403) and the Gigabit Ethernet-SX PCI-X Adapter Device Driver (14106703).
  • msnent_output for the 10 Gb Ethernet PCI Express Dual Port Adapter (7710008077108001).
  • msnent_output for the 10 Gb Ethernet-SR PCI Express Dual Port Adapter (771000801410b003).
  • musent_output for the 4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004).
  • musent_output for the 1GbE 4-port Mezzanine Adapter (e4145616e4140518) and 1GbE 4-port Mezzanine Adapter (e4145616e4140528).
  • nment_output for the 4-Port Gigabit Ethernet PCI-Express Adapter (e4143a16e4143009).
  • nment_output for the 2-Port Gigabit Ethernet PCI-Express Adapter (e4143a16e4140909).
  • nment_output for the 2-Port Gigabit Ethernet PCI-Express Combo Adapter (e4143a161410a003).
  • nment_output for the 2-Port Integrated Gigabit Ethernet PCI-Express Adapter (e4143a161410ed03).
  • phxent_output for the 10/100 Mbps Ethernet PCI Adapter Device Driver (23100020).
  • scent_output for the 10/100 Mbps Ethernet PCI Adapter II Device Driver (1410ff01).
  • vent_output for the 10 Gigabit Ethernet-SR PCI-X Adapter Device Driver (1410ba02) and the 10 Gigabit Ethernet-LR PCI_X Adapter Device Driver (1410bb02).