netifd [4] - interface

本文详细介绍了netifd中接口管理的数据结构,包括avl tree和链表的使用。在配置初始化时,会更新avl tree的标志,并确保所有interface节点与头结点标志一致。在UCI更新或接口操作中,不一致的节点将在后续的vlist_flush过程中被删除。然而,netifd在删除接口时不直接从avl tree中移除,而是等待下次重启或重载时进行处理。
摘要由CSDN通过智能技术生成

数据结构

/**
 * interface object
 */
struct interface {
    struct vlist_node node;
    struct list_head hotplug_list;
    enum interface_event hotplug_ev;

    const char *name;
    const char *ifname;

    bool available;
    bool autostart;
    bool config_autostart;
    bool device_config;
    bool enabled;
    bool link_state;
    bool force_link;
    bool dynamic;

    time_t start_time;
    enum interface_state state;
    enum interface_config_state config_state;
    enum interface_update_flags updated;

    struct list_head users;

    const char *parent_ifname;
    struct interface_user parent_iface;

    /* main interface that the interface is bound to */
    struct device_user main_dev;

    /* interface that layer 3 communication will go through */
    struct device_user l3_dev;

    struct blob_attr *config;

    /* primary protocol state */
    const struct proto_handler *proto_handler;
    struct interface_proto_st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值