网络子系统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_MASK0x1E#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)};