网络子系统45_ip协议tos处理

//ip报头tos字段,一个字节

//	二进制位:[0 1 2] [3] [4] [5] [6] [7]

//		1.[0 1 2] 表示优先级:

//			000 路由

//			001 优先级

//			010 立即

//			011 火速

//			100	火速覆盖

//			101 紧急

//			110 互联网控制

//			111 网络控制

//		2.[3] 表示时延

//			0 普通

//			1 最小

//		3.[4] 吞吐量

//			0 普通

//			1 最大

//		4.[5] 可靠性

//			0 普通

//			1.最大

//		5.[6] 开销

//			0 普通

//			1 最小

//		6.[7] 保留,恒为0



//由ip报头的tos字段,计算skb的优先级,用于在规则队列中选择优先级队列

1.1 static inline char rt_tos2priority(u8 tos)

{

	return ip_tos2prio[IPTOS_TOS(tos)>>1];

}



//获取tos的[3,4,5,6]比特位,右移一位,转换为0~15范围的数

1.2 

#define IPTOS_TOS_MASK		0x1E

#define IPTOS_TOS(tos)		((tos)&IPTOS_TOS_MASK)



//

1.3 __u8 ip_tos2prio[16] = {

	TC_PRIO_BESTEFFORT,

	ECN_OR_COST(FILLER),

	TC_PRIO_BESTEFFORT,

	ECN_OR_COST(BESTEFFORT),

	TC_PRIO_BULK,

	ECN_OR_COST(BULK),

	TC_PRIO_BULK,

	ECN_OR_COST(BULK),

	TC_PRIO_INTERACTIVE,

	ECN_OR_COST(INTERACTIVE),

	TC_PRIO_INTERACTIVE,

	ECN_OR_COST(INTERACTIVE),

	TC_PRIO_INTERACTIVE_BULK,

	ECN_OR_COST(INTERACTIVE_BULK),

	TC_PRIO_INTERACTIVE_BULK,

	ECN_OR_COST(INTERACTIVE_BULK)

};




你可能感兴趣的:(OS)