网络子系统13_邻居子系统状态机

//	参考深入理解linux网络技术内幕
//	头文件net/neighbour.h

//一个solicitation请求已发出,但是还没有收到应答,在这个状态下,不适用任何硬件地址
#define NUD_INCOMPLETE	0x01

//该邻居是可到达的
#define NUD_REACHABLE	0x02

//缓存中包含此邻居项,但是该地址已有一段时间没有被确认了,上一次确认时间由
//neighbour->confirmed成员指出,当下一次有封包要到达这个邻居时,要启动可到达性确认,
//在该状态下,会使用旧的硬件地址
#define NUD_STALE	0x04

//当发送一个封包到一个邻居,且该邻居相关的缓存处于NUD_STALE时,就进入这个状态,
//NUD_DELAY表示一个时间窗口,如果在这个窗口内,没有收到该邻居的确认,就进入NUD_PROBE状态
#define NUD_DELAY	0x08

当邻居处于NUD_DELAY并且没有收到可到达性确认时,状态转变为NUD_PROBE,同时开始solicitation处理
#define NUD_PROBE	0x10

//由于solicitation请求失败,将邻居标记为不可达
#define NUD_FAILED	0x20

//标记不要任何协议进行l3到l2的地址映射
#define NUD_NOARP	0x40

//邻居项l2地址静态配置
#define NUD_PERMANENT	0x80

//邻居项刚被创建,还没有状态可用
#define NUD_NONE	0x00

//表示当前状态有定时器在运行
#define NUD_IN_TIMER	(NUD_INCOMPLETE|NUD_REACHABLE|NUD_DELAY|NUD_PROBE)

//表示相信该邻居有一个硬件地址
#define NUD_VALID	(NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE|NUD_PROBE|NUD_STALE|NUD_DELAY)

//表示没有未决的处理要确认
#define NUD_CONNECTED	(NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值