閱讀715 返回首頁    go 阿裏雲 go 技術社區[雲棲]


網絡子係統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)
};


最後更新:2017-04-03 14:53:38

  上一篇:go 網絡子係統46_ip協議數據幀的轉發
  下一篇:go Java包及訪問控製權限--包的定義和導入---package