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

正文內(nèi)容

linux-310-kernel-bridge轉(zhuǎn)發(fā)邏輯-文庫吧

2025-07-20 09:52 本頁面


【正文】 _dev。 bool deliver_exact = false。 int ret = NET_RX_DROP。 __be16 type。 /*......*/ orig_dev = skbdev。 skb_reset_network_header(skb)。 pt_prev = NULL。 skbskb_iif = skbdevifindex。 /*ptype_all協(xié)議處理,tcpdump抓包就在這里*/ list_for_each_entry_rcu(ptype, amp。ptype_all, list) { if (!ptypedev || ptypedev == skbdev) { if (pt_prev) ret = deliver_skb(skb, pt_prev, orig_dev)。 pt_prev = ptype。 } } /*調(diào)用接收設備的rx_handler*/ rx_handler = rcu_dereference(skbdevrx_handler)。 if (rx_handler) { if (pt_prev) { ret = deliver_skb(skb, pt_prev, orig_dev)。 pt_prev = NULL。 } switch (rx_handler(amp。skb)) { case RX_HANDLER_CONSUMED: ret = NET_RX_SUCCESS。 goto out。 case RX_HANDLER_ANOTHER: goto another_round。 case RX_HANDLER_EXACT: deliver_exact = true。 case RX_HANDLER_PASS: break。 default: BUG()。 } } /*根據(jù) skbprotocol傳遞給上層協(xié)議*/ type = skbprotocol。 list_for_each_entry_rcu(ptype,amp。ptype_base[ntohs(type) amp。 PTYPE_HASH_MASK], list) { if (ptypetype == type amp。amp。 (ptypedev == null_or_dev || ptypedev == skbdev ||ptypedev == orig_dev)) { if (pt_prev) ret = deliver_skb(skb, pt_prev, orig_dev)。 pt_prev = ptype。 } } if (pt_prev) { if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC))) goto drop。 else ret = pt_prevfunc(skb, skbdev, pt_prev, orig_dev)。 } else {drop: atomic_long_inc(amp。skbdevrx_dropped)。 kfree_skb(skb)。 ret = NET_RX_DROP。}out: return ret。}如果一個dev被添加到一個bridge(做為bridge的一個接口),的這個接口設備的rx_handler被設置為br_handle_frame函數(shù),這是在br_add_if函數(shù)中設置的,而br_add_if (net/bridge/)是在向網(wǎng)橋設備上添加接口時設置的。進入br_handle_frame也就進入了bridge的邏輯代碼。l br_add_if點擊(此處)折疊或打開int br_add_if(struct net_bridge *br, struct net_device *dev){ /*......*/ err = netdev_rx_handler_register(dev, br_handle_frame, p)。 /*......*/}l br_handle_frame點擊(此處)折疊或打開rx_handler_result_t br_handle_frame(struct sk_buff **pskb){ struct net_bridge_port *p。 struct sk_buff *skb = *pskb。 const unsigned char *dest = eth_hdr(skb)h_dest。 br_should_route_hook_t *rhook。 if (unlikely(skbpkt_type == PAC
點擊復制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1