高级IPv4路由:多播、策略与多路径路由解析
多播路由
多播路由是一种允许单个源向多个目的地发送数据包的技术。在多播路由中,涉及到多个重要的方法和概念。
首先是 ip_mr_forward() 方法,它处理多播路由转发逻辑。以下是其部分代码逻辑:
if (psend != -1) {
if (local) {
struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC);
if (skb2)
ipmr_queue_xmit(net, mrt, skb2, cache, psend);
} else {
ipmr_queue_xmit(net, mrt, skb, cache, psend);
return 0;
}
}
dont_forward:
if (!local)
kfree_skb(skb);
return 0;
当 psend 不等于 -1 时,如果是本地情况,会克隆一个 skb 对象 skb2 ,并调用 ipmr_queue_xmit() 方法进行转发;否则直接调用 ipmr_queue_xmit() 方法。如果不需要转发,则释放 skb 对象。
接下来是
超级会员免费看
订阅专栏 解锁全文
1577

被折叠的 条评论
为什么被折叠?



