batman-adv主要结构体

来源:互联网 发布:西部域名怎么解析 编辑:程序博客网 时间:2024/05/01 07:36

四、batman-adv主要结构体

batadv_orig_node

每个节点会问它所服务的所有源节点创建一个结构体,然后存在一个链表中。源节点结构体的重要成员有:

  • ifinfo_list:每个发送接口的router链表;
  • last_bonding_candidate: 上一个使用的路由节点的接口信息;
  • bcast_seqno_reset: seqno广播窗口被reset的时间;
  • capabilities: 该源节点的功能;(有NC,mcast等等 ,line 318)
  • last_ttvn: 上一个TTVN版本;(转发表版本号)
  • neigh_list:潜在的到达该源节点的邻居列表;
  • bat_priv:该源节点归属于哪个软件接口;
  • refcount:引用计数;
  • in_coding_list:该源节点能感知到的节点列表;
  • out_coding_list:能感知到该源节点的节点列表;

batadv_neigh_node

同样,每个邻居节点也都会有一个相应的结构体。其中的重要成员有:

  • list:对应源节点结构体的neigh_list;
  • ifinfo_list:所有发送接口的接口信息列表;
  • if_incoming:接收硬件接口;
  • last_seen:上一次接收到来自该邻居数据包的时刻;
  • last_ttl:上一次接收到来自该邻居数据包的TTL;

batadv_neigh_ifinfo

在每个接口上,都会维护一个各自邻居信息的结构体。其中的重要成员有:

  • List:对应邻居节点结构体中的ifinfo_list;
  • if_incoming:接收硬件接口;
  • batadv_neigh_ifinfo_bat_iv:该邻居具体信息结构体(详细如下);
  • last_ttl:上一次接收到来自该邻居数据包的TTL;
  • refcount:引用计数;

其中batadv_neigh_ifinfo_bat_iv结构体包含:

  • tq_recv[5]:从该邻居节点接收到的TQ值的存储缓冲区(窗口为5);
  • tq_index:tq数组索引;
  • tq_avg:缓冲区内TQ平均值;
  • real_bits:OGM包接收窗口为64,将其映射成map,接收到对应OGM则置位;
  • real_packet_count:read_bits计数;

batadv_priv_tt

每个mesh接口都会维护一个转发表结构体batadv_priv_tt,重要部分如下:

  • ogm_append_cnt:包含本地转发表diff的OGM包数量;
  • local_changes:changes registered in an originator interval;
  • changes_list: tracks tt local changes within an originator interval;
1 0
原创粉丝点击