linux路由初始化调用的相关接口函数

本文简单记录路由初始化调用的相关接口函数

发送路由调用过程:

1、tcp_v4_connect(net/ipv4/tcp_ipv4.c)

传输层连接接口,根据路由表设置原ip地址和发送网络设备接口

2、ip_route_connect  (include/net/route.h)

3、__ip_route_output_key (net/ipv4/route.c)

4、__mkroute_output(net/ipv4/route.c)

5、rt_dst_alloc(net/ipv4/route.c)

6、ip_route_output_flow(net/ipv4/route.c)

7、sk_setup_caps(net/core/sock.c)

设置指定sock的dst_entry

接收路由调用过程:

1、ip_rcv(net/ipv4/in_put.c)

网络ip层接收接口

2、ip_rcv_finish(net/ipv4/in_put.c)

3、ip_route_input_noref(net/ipv4/route.c)

以上是ip报文输入处理调用流程

4、ip_route_input_slow(net/ipv4/route.c)

输入路由处理入口

5、ip_mkroute_input(net/ipv4/route.c)

6、__mkroute_input(net/ipv4/route.c)

7、rt_dst_alloc(net/ipv4/route.c)

8、skb_dst_set(skb, &rth->dst);

设置指定sock的dst_entry

路由策略规则表(forward information base)初始化:

1、fib_rules_init(net/core/fib_rules.c)

注册路由策略设置接口回调函数

2、fib_nl_newrule(net/core/fib_rules.c)

路由策略规则(fib_rule)增加

3、int __net_init fib4_rules_init(struct net *net) (net/ipv4/fib_rules.c)

ipv4路由策略规则初始化,注册路由策略规则操作函数和默认路由策略规则

4、fib4_rules_init (net/ipv4/fib_frontend.c)

路由表初始化,不要和路由策略规则初始化混合

5、fib_new_table (net/ipv4/fib_frontend.c)

路由表快速查找算法LC-trie(字典树查找算法,为了提高路由表查找速度,linux3.6版本开始引入字典树路由表查找算法,替换了之前的hash表查找算法)

fib_insert_node (net/ipv4/fib_trie.c)

fib_find_node (net/ipv4/fib_trie.c)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缥缈孤鸿_jason

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值