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

正文內(nèi)容

linux-310-kernel-bridge轉(zhuǎn)發(fā)邏輯(完整版)

2025-09-09 09:52上一頁面

下一頁面
  

【正文】 備的接收函數(shù)設(shè)置為netdev_frame_hook函數(shù),這也是整個openvswitch的入口函數(shù),從而由bridge邏輯進入OpenvSwitch邏輯。 rcu_assign_pointer(devrx_handler, rx_handler)。 Linux kernel bridge轉(zhuǎn)發(fā)邏輯之前分析過linux kernel ,下面分析一下linux kernel 。 return 0。2. Bridge轉(zhuǎn)發(fā)邏輯分析還是先從netif_receive_skb函數(shù)分析,這個函數(shù)算是進入?yún)f(xié)議棧的入口。rflow)。} netif_receive_skb只是對數(shù)據(jù)包進行了RPS的處理,然后調(diào)用__netif_receive_skb。 int ret = NET_RX_DROP。 pt_prev = ptype。 case RX_HANDLER_EXACT: deliver_exact = true。 (ptypedev == null_or_dev || ptypedev == skbdev ||ptypedev == orig_dev)) { if (pt_prev) ret = deliver_skb(skb, pt_prev, orig_dev)。}out: return ret。 if (unlikely(skbpkt_type == PACKET_LOOPBACK)) return RX_HANDLER_PASS。 default: /* Allow selective forwarding for most other protocols */ if (pbrgroup_fwd_mask amp。 } dest = eth_hdr(skb)h_dest。 u16 vid = 0。 struct net_bridge *br。 /* insert into forwarding database after filtering to avoid spoofing */ br = pbr。 BR_INPUT_SKB_CB(skb)brdev = brdev。amp。amp。 //發(fā)往本機協(xié)議棧out: return 0。amp。} 再次進入netif_receive_skb,由于skbdev被設(shè)置成了bridge,而bridge設(shè)備的rx_handler函數(shù)是沒有被設(shè)置的,所以就不會再次進入bridge邏輯,而直接進入了主機上層協(xié)議棧。 //經(jīng)過NF_BR_FORWARD hook點,調(diào)用br_forward_finish NF_HOOK(NFPROTO_BRIDGE, NF_BR_FORWARD, skb, indev, skbdev, br_forward_finish)。 dev_queue_xmit(skb)。}Skb進入dev_queue_xmit就會調(diào)用相應(yīng)設(shè)備驅(qū)動的發(fā)送函數(shù)。}l br_dev_queue_push_xmit點擊(此處)折疊或打開int br_dev_queue_push_xmit(struct sk_buff *skb){ /* ip_fragment doesn39。l __br_forward點擊(此處)折疊或打開static void __br_forward(const struct net_bridge_port *to, struct sk_buff *skb){ struct net_device *indev。 //如果不是混雜模式且vlan處理不合要求則丟棄 return NET_RX_DROP。 goto out。 /* Do not forward the packet since it39。 br_multicast_forward(mdst, skb, skb2)。 /*如果網(wǎng)橋被設(shè)置為混雜模式*/ if (brdevflags amp。 /*多播mac的處理*/ if (!is_broadcast_ether_addr(dest) amp。 struct net_bridge_mdb_entry *mdst。vid)。 /*NF_BR_PRE_ROUTING hook點*/ NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, skb, skbdev, NULL,br_handle_frame_finish)。 } /* LOCAL_IN hook點,注意經(jīng)過這個hook點并不代表發(fā)送到主機協(xié)議棧(只有特殊目的mac 0180C2才會走到這里)*/ if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_IN, skb, skbdev, NULL, br_handle_local_finish)) { return RX_HANDLER_CONSUMED。
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1