freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux-310-kernel-bridge轉(zhuǎn)發(fā)邏輯(存儲(chǔ)版)

  

【正文】 *pskb = skb。} 經(jīng)過(guò)NF_BR_LOCAL_IN hook點(diǎn)會(huì)執(zhí)行br_handle_local_finish函數(shù)。l br_handle_frame_finish點(diǎn)擊(此處)折疊或打開(kāi)int br_handle_frame_finish(struct sk_buff *skb){ const unsigned char *dest = eth_hdr(skb)h_dest。 /*這個(gè)判斷主要是vlan的相關(guān)檢查,如是否和接收接口配置的vlan相同*/ if (!br_allowed_ingress(pbr, nbp_get_vlan_info(p), skb, amp。 br_multicast_rcv(br, p, skb)) goto drop。 else if (is_multicast_ether_addr(dest)) { /*多播*/ mdst = br_mdb_get(br, skb, vid)。 brdev++。 //轉(zhuǎn)發(fā)給目的接口 } else br_flood_forward(br, skb, skb2)。 //更新統(tǒng)計(jì)計(jì)數(shù)(略) /* Bridge is just like any other port. Make sure the * packet is allowed except in promisc modue when someone * may be running packet capture. */ if (!(brdevflags amp。 skbdev = brdev。 skbdev = todev。 } else { skb_push(skb, ETH_HLEN)。: 注意,bridge的OUTPUT hook點(diǎn)在bridge dev的發(fā)送函數(shù)中,這里不再分析列出。amp。 if (!skb) return。 if (!skb) return NET_RX_DROP。l br_pass_frame_up點(diǎn)擊(此處)折疊或打開(kāi)static int br_pass_frame_up(struct sk_buff *skb){ struct net_device *indev, *brdev = BR_INPUT_SKB_CB(skb)brdev。 } if (skb) { if (dst) { dstused = jiffies。 if (!skb2) goto out。 dst = NULL。 is_multicast_ether_addr(dest) amp。 u16 vid = 0。 return 0。default:drop: kfree_skb(skb)。 return RX_HANDLER_PASS。 /*獲取dev對(duì)應(yīng)的bridge port*/ p = br_port_get_rcu(skbdev)。 /*......*/}l br_handle_frame點(diǎn)擊(此處)折疊或打開(kāi)rx_handler_result_t br_handle_frame(struct sk_buff **pskb){ struct net_bridge_port *p。 } else {drop: atomic_long_inc(amp。 list_for_each_entry_rcu(ptype,amp。 } switch (rx_handler(amp。 pt_prev = NULL。 rx_handler_func_t *rx_handler。 return ret。 /*RPS邏輯處理,現(xiàn)在內(nèi)核中使用了RPS機(jī)制, 將報(bào)文分散到各個(gè)cpu的接收隊(duì)列中進(jìn)行負(fù)載均衡處理*/ ifdef CONFIG_RPS if (static_key_false(amp。()創(chuàng)建netdev vport的函數(shù)netdev_create。l netdev_rx_handler_register點(diǎn)擊(此處)折疊或打開(kāi)/** dev: 要注冊(cè)接收函數(shù)的dev* rx_handler: 要注冊(cè)的接收函數(shù)* rx_handler_data: 指向rx_handler_data使用的數(shù)據(jù)*/int netdev_rx_handler_register(struct net_device *dev, rx_handler_func_t *rx_handler, void *rx_handler_data){ ASSERT_RTNL()。1. netdev_rx_handler_register在分析之前首先要介紹一個(gè)重要函數(shù):netdev_rx_handler_register。這相對(duì)于老式的網(wǎng)橋處理更靈活,有了這個(gè)機(jī)制也可以在模塊中自行注冊(cè)處理函數(shù)。 rcu_read_lock()。 rcu_read_unlock()。l __netif_receive_skb_core點(diǎn)擊(此處)折疊
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1