首页 > 其他 > 详细

openwrt 一个接口多IP, 多协议配置 (alias)

时间:2019-06-28 11:24:25      阅读:513      评论:0      收藏:0      [点我收藏+]
config interface ‘lan‘
        option type ‘bridge‘
        option ifname ‘eth0.1‘
        option proto ‘static‘
        option ipaddr ‘192.168.1.1‘
        option netmask ‘255.255.255.0‘
        option ip6assign ‘60‘

# 接口 lan 的别名
config alias
        option interface ‘lan‘
        #option proto ‘dhcp‘
        option proto ‘static‘
        option ipaddr ‘192.168.11.1‘
        option netmask ‘255.255.255.0‘
        option ip6assign ‘60‘

 

接口处理过程在 neifd -> config.c-> config_init_interfaces() -> __interface_add()

处理了 interface 和  alias 的section,

如果是alias 就将 setction 中的 option interface ‘lan‘ 作为当前接口的 parent_ifname

处理alias: 

 1 static bool __interface_add(struct interface *iface, struct blob_attr *config, bool alias)
 2 {
 3     struct blob_attr *tb[IFACE_ATTR_MAX];
 4     struct blob_attr *cur;
 5 
 6     blobmsg_parse(iface_attrs, IFACE_ATTR_MAX, tb,
 7               blob_data(config), blob_len(config));
 8 
 9     if (alias) {
10         if ((cur = tb[IFACE_ATTR_INTERFACE]))
11             iface->parent_ifname = blobmsg_data(cur);
12 
13         if (!iface->parent_ifname)
14             return false;
15     } else {
16         if ((cur = tb[IFACE_ATTR_IFNAME]))
17             iface->ifname = blobmsg_data(cur);
18     }
19 
20     iface->config = config;
21     vlist_add(&interfaces, &iface->node, iface->name);
22     return true;
23 }

 

openwrt 一个接口多IP, 多协议配置 (alias)

原文:https://www.cnblogs.com/listenerln/p/11101597.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!