TX Ring Desc Architecture
Xmit Frame
- device driver receive sk_buff from kernel
- find tx_buffer_info which can be used
- fill tx_buffer_info based on skb's info
- update next_to_use (cf. may be used more than 1 index, if the size of skb is larger than 1 page)
- notify tx_ring to H/W
추가 설명
- 전송할 패킷이 존재할 때, device driver는 ximt 을 하며, 이는 descriptor 의 tail에 쓰고, tail의 값을 업데이트 한다. (아래 TDT register)
- H/W는 Head (TDH register)가 가르키고 있는 data를 처리한다. DMA engine 은 Head가 가르키는 데이터를 처리한 후, TDH의 값을 업데이트한다. (즉 System memory에서 NIC 의 on-chip buffer로 복사가 완료된 상태, 따라서 Head는 H/W가 업데이트를 한다.)
- 따라서 Tail - Head 구간이 H/W NIC 이 처리해야 하는 Transmit Queue 에 해당된다.
Transmit Descriptor Ring Structure
82599 has 160 KB on-chip packet buffer.
References:
sk_buff : http://vger.kernel.org/~davem/skb_data.html
Intel 82599 10GbE Controller Datasheet