收包:
napi:中斷來了,在上半部中把net_device加入poll_list,sk_buff仍然在裝置自身佇列中,然後下半部軟中斷過程中輪詢所有的裝置,用裝置的poll函式把自己的sk_buff交給上層。
非napi:中斷來了,在上半部中把sk_buff放到本cpu的多裝置共享佇列中,然後下半部軟中斷過程中用預設poll函式(process_backlog)處理共享佇列中的包。
除了napi和非napi,還有netpoll,cpu去輪詢網絡卡。可以繞過協議棧收取skb。可以在debug時使用。
***************====上半部參考各網絡卡裝置驅動*************************==
比如do_irq()->e1000_intr(),napi把裝置掛到本地cpu的softnet_data佇列/非napi把sk_buff掛到cpu共享佇列,這些事情就在這個函式中完成的。
***************====napi/非napi 網絡卡驅動下半部*************************
net_rx_action(軟中斷號) //這兒napi/非napi都適用
process_backlog(net_device) //非napi時所有裝置都用這個函式作為預設的dev->poll介面
e1000_clean(net_device) //napi時e1000的dev->poll()介面
-|如果裝置被關閉或禁止,返回
-|e1000_clean_tx_irq()
-|e1000_unmap_and_free_tx_resource() //此時資料已經傳送給網絡卡傳送佇列了,所以挨個**dma ring中的skb->data資源。在核心準備好sk_buff之後再對映?
-|e1000_clean_rx_irq()
-|pci_unmap_single() //對於已經copy以太包的skb->data,解除其dma對映
-|skb_put() //刪除以太幀尾4位元組
-|netif_receive_skb() //把以太包交付給上層協議棧
-|e1000_alloc_rx_buffers() //重新對映流式dma
發包:
net_tx_action() //網路發包軟中斷,比如nic的tx fifo可用了之後,呼叫此函式
qdisc_restart()
e1000_xmit_frame()
netif_schedule(dev)
配置網路策略中的 NAP 條件
technet 庫 windows server windows server 2008 r2 und windows server 2008 按類別提供的 windows server 內容 windows server 2008 content by category installed hel...
走近NAP功能 全面了解Vista系統安全機制
自windows vista作業系統發布以來,有關uac和windows defender對vista如何進行防護的討論就充斥了整個安全領域。在眾人熱議vista安全機制的同時,人們忽略了nap這個可以改善微軟的安全政策管理與政策執行能力的功能。在保障網路連線的安全性上,微軟其實對nap寄予厚望。n...
現任明教教主NAC2011 微軟NAP
step by step guide demonstrate 802.1x nap enforcement 1 網路拓撲規劃,伺服器角色介紹,交換機的初始化配置。2 在建立ad mingjiao.org 新增dhcp ca角色。建立nap ou,在nap ou裡建立使用者napuser,將napus...