2013年8月27日 星期二

Ralink Ethernet Driver

OpenWrt 有 Ralink Ethernet Driver

module init
  • debugfs 初始化 (選擇性)
  • esw 初始化
  • 註冊 platform driver:登記 probe 及 remove 函數
platform driver 的 probe 函數
  • get memory base
  • alloc ether net dev
  • get irq
  • 登記 net dev ops:包括 init, uninit, open, stop, start_xmit, tx_timeout, ... 等函數
  • 設定 net dev priv data
  • 註冊 net dev
net dev 的 init 函數
  • ...
  • hardware init
    • request irq
    • alloc 256 rx_info, 256 tx_dma, 256 rx_dma, one skb per rx_info
    • 初始化 tx_dma, 初始化 rx_info dma_addr (來自 skb), 初始化 rx_dma
    • set macaddr to SoC
    • 初始化 SoC tx_dma, rx_dma
    • set sys_freq to SoC
    • tasklet init: tx & rx
    • other SoC init
net dev 的 open 函數
  • ...
net dev 的 start_xmit 函數
  • ...
net dev 的 tx_timeout 函數
  • ...
封包接收
  • ...
硬體加速
  • Hardware NAT, QoS, TCP/UDP/IP checksum offloading
延伸閱讀

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...