Skip to content

Latest commit

 

History

History
executable file
·
127 lines (51 loc) · 3.18 KB

lab6.md

File metadata and controls

executable file
·
127 lines (51 loc) · 3.18 KB

preparation reading

Turtles on the wire: understanding how the OS uses the modern NIC : how os and NIC interact

Illustrated Guide to Monitoring and Tuning the Linux Networking Stack: Receiving Data

nic receive

qemu-networking

nic receive

Linux networking stack from the ground up, part 1 : on PCI init

Linux Network Receive Stack Monitoring and Tuning Deep Dive (Patrick Ladd, pdf):

lspci -nn

nic receive

lab key points

ns stack


arch e1000

  • PCI config & enable

    registers
    pci registers bars
    registers
  • memory-mapped I/O

    registers
  • direct memory access

  • transmit descriptor ring buffer (legacy mode)

    63            48 47   40 39   32 31   24 23   16 15             0
      +---------------------------------------------------------------+
      |                         Buffer address                        |
      +---------------+-------+-------+-------+-------+---------------+
      |    Special    |  CSS  | Status|  Cmd  |  CSO  |    Length     |
      +---------------+-------+-------+-------+-------+---------------+
    
    tx cmd
    tx status
    tx ring
  • receive descriptor ring buffer

    • Receive Address Registers (RAL and RAH)
    • attention to RDT
    rx ring

rx desc


rx status

  • interrupt & poll

    rx status
  • lwip tcp/ip stack; web server

knowledge

  • ethtool