MAC知識點004 pause幀處理流程

2021-09-11 07:04:59 字數 1663 閱讀 9152

mac知識點

004

pause幀處理流程

1、什麼是pause?

在ieee802.3協議中規定中,pause幀是一種控制幀,用於控制資料流停止傳送,在mac 傳送側產生,在mac接收側解析並執行。當此端裝置輸入資料量過大,無法及時處理時會在此端傳送側mac產生pause幀,發給對端,要求對端在一定時間內停止傳送資料。

2、pause幀處理過程?

如圖所示,左側為本端晶元,右側為對端晶元。mac0和mac1都包含傳送側tx和接收側rx。左側晶元內部mac上游模組a與mac0傳送側有流控訊號fc_rdy。fc_rdy訊號為1表示模組a無法及時處理輸入資料,需要進行流控。為了方便突出重點,圖中省略了pcs以及serdes等模組。

流程處理如下:

1~2步:對端mac1傳送資料給mac0接收側,資料經過mac0 rx 進入下游模組a

3步:下游模組a無法及時處理輸入的資料,需要減少資料輸入,從而將fc_rdy拉高。

4步:mac0 tx側發現流控訊號fc_rdy為高,則需要產生pause幀傳送給mac1接收側。只要fc_rdy為高,mac0傳送側tx每隔一段時間傳送乙個pause幀,間隔時間由配置暫存器控制。間隔時長計算由計數器counting計算。pause幀內停止傳送資料的時間由另外乙個配置暫存器控制。只要fc_rdy為高期間,mac0 tx側每間隔一段時間傳送乙個pause幀,其他時間按需傳送資料等其他報文。pause幀的傳送不能打斷正在傳輸的資料幀。

5步:mac1接收側rx存在乙個模組可以識別幀型別,rx接受到pause報文並完成識別後,提取pause幀內包含的暫停時間,控制傳送側mac1 tx在暫停時間內 停止傳送資料

6~7~8:mac1 tx側在在暫停時間內,停止傳送資料。mac0 tx側可能會發起多個pause幀。一旦模組a處理完之前的資料後將fc_rdy拉低,則進入第9步。

9:步:第9步分2種情況。

情況1:fc_rdy拉低,並且counting在計數沒有到乙個間隔週期,此時傳送pause幀,但是幀內暫停時間為0. mac1接受到pause幀後,控制tx控制立即開始傳送資料。

情況2:fc_rdy拉低的同時,counting正好計數到乙個間隔週期,此時不傳送pause幀。等到上乙個pause幀的暫停時間到達後,mac1傳送側tx繼續傳送資料。

3、pause幀處理協議強制要求:

1) pause的產生傳送過程不能中斷乙個完整的資料報文。即在第4步中,fc_rdy拉高後,首先mac0 tx側需要判斷當前是否正常資料報文在傳輸。如果有,則需要在當前資料報文傳輸完成後才能傳送pause幀。也就是說在傳送過程中,只能在完整資料報文的間隙插入pause幀。

2) 新的pause報文暫停時間會覆蓋上乙個暫停時間。對mac1來說,當mac1接收到新的pause幀後,暫停時間以最新時間為準。

C 知識點分享004 理解編譯過程

該文章原創於qter開源社群 www.qter.org 課程目錄 c 老鳥日記 目錄 本套課程屬於 c 跨平台開發乾貨 系列課程。編譯器的基本編譯過程如下 1,讀取工程 讀取並解析工程檔案。一般為makefile或者makefile.debug makefile.release。2,編譯檔案 遍歷解...

TestLink知識點Mantis知識點

testlink知識點 1 testlink系統提供了六種角色 a guest 只有讀的許可權,適合於檢視測試用例和測試需求,以及專案分析的使用者。b testdesigner 可以開展測試用例和測試需求的所有工作。c tester 只能執行測試用例。d senior tester 可以檢視和維護測...

MAC學習 基礎知識002 pause報文格式

mac學習 基礎知識 002 pause報文格式 1 什麼是pause報文?pause報文是ieee802.3協議中描述的一種用於控制mac資料流量的報文。當對端資料量過大,將無法及時處理資料時,會向資料上游mac傳送puase報文,告訴上游mac在一段時間內停止傳送資料,停止時間記錄在報文的pau...