交换机芯片笔记1.1
一、基本的概念
出于安全原因并非所有的端口都支持遠程管理
基本的交換機發生在所有的端口上是在0x04
1、 交換機內核的功能描述
該設備被設計用于許多不同的應用. 為了靈活性和方便學習如何使用交換機, 所有的交換機的端口都被設計成了相同的功能直到與交換機核心相關的為止1. 詳細信息請參見設備數據表中的應用程序示例。
本節主要介紹的交換機內核所有端口的核心的功能是相同的。雖然相同的端口功能使設備變得靈活,但在給定的模式和/或應用程序中應該使用哪些功能可能令人困惑。為了更好地理解如何基于應用更好地使用設備的特性,交換機核心功能描述分為以下幾個部分(雖然交換機的端口的功能可以是相同的但是還是劃分了不同的交換機的功能端口,這是為了更好的有效地使用設備):
? 交換機的基本功能 – 這些功能對于所有的幀模式都是通用的(Section 1.1).
? 正常的網絡幀模式–用于IEEE標準未標記和標記的幀,或至少有一個“提供商”端口在交換機上可用于“客戶”端口 (Section 2).
? 提供商的幀模式 –用于IEEE標準“提供商”的端口 (Section 3).
? Distributed Switch Architecture分布式交換機體系結構 (DSA) 的幀模式 – 用于多個芯片交換矩陣擴展(級聯)或用于連接到交換管理CPU和/或路由器CPU (Section 4).
每個交換機端口可以處于三種基本操作模式之一:
? Normal 正常
? Provider 提供商
? DSA 分布式交換機體系結構 ----- 級聯
在哪里兩個DSA選項可以被支持呢:
? Classic
? Ether type
使用端口的FrameMode寄存器配置端口的操作模式 (Port offset 0x04).[9:8]兩位來配置
1.1基本的交換機功能
以下基本的交換機操作發生在所有端口上,而不用管端口的FrameMode (Port offset 0x04).
1.1.1物理的交換機的數據流的設備
這個設備接收以太網的幀然后它可以丟棄幀或者也可以將幀從一個或多個端口中傳輸出去。決定如何處理每個太網的幀只是交換機內部處理的許多任務之一。 Figure 1 圖中給出了交換機內部的數據路徑以及主要功能塊,這些功能塊在幀通過設備時處理幀。以下各節介紹了這些模塊中的每個模塊及其寄存器可控制的選項和策略。
本節重點介紹單個端口的交換機核心(從MAC接收到MAC傳輸)中發生的幀處理和策略。
PS:都是可以接收以太網的幀并做以下的操作1.丟棄2.轉發到一個或多個端口
1.1.2每個端口都包含某種物理端口
用于和MAC之間收發幀,雖然一些端口支持許多不同的物理接口但是一次只能用一種
Note:寄存器分為端口、全局1、全局2和TCAM組成的組,還有一個用于訪問PHY的組
NOTE:通過參考控制功能的寄存器來應用設備功能。 交換設備中的寄存器分為端口,全局1,全局2和TCAM組成的組,另外還有一個用于訪問PHY的組。 每個組最多支持32個16位寄存器,每個端口都有自己的32個寄存器集。 組中32個寄存器中的特定寄存器可稱為“偏移”。 例如,端口控制寄存器在端口設備地址空間中的寄存器地址0x04處顯示為端口偏移0x04。 有關寄存器的詳細信息,請參見Section 8。 為了擴展有限的可用地址,對許多寄存器進行了索引。 通過將術語“索引”放在“偏移”之后來引用適當的寄存器。 例如,端口偏移量0x02,索引0x10。
1.1.3MAC
該設備包含了12個 MACs. 這些MAC執行802.3協議中的所有功能,包括幀格式化,幀剝離,CRC檢查,CSMA / CD實施和沖突處理。 每個MAC僅在全雙工模式下支持1 Gbps操作,在全雙工或半雙工模式下支持10/100 Mbps操作。 連接到端口9和端口10的MAC也可以支持2.5 Gbps速度和最高10 Gbps速度(僅BGA封裝中支持10 Gbps)。 連接到IMP(集成管理處理器)NIC的MAC以1 Gbps的固定速度運行(并且僅支持全雙工操作)。MAC接收模塊檢查傳入的數據包,并丟棄那些具有CRC錯誤的數據包,那些具有對齊錯誤的數據包,短數據包(小于64字節),長數據包(大于1522字節)1(非巨型模式)和巨型數據包(10240字節)。每個MAC持續監控其接收線路,等待前導字節,然后跟隨幀起始定界符(SFD)。 SFD之后的前六個字節用作數據包的目標地址(DA)1,之后的后六個字節用作數據包的源地址(SA)。 這兩個地址是交換機操作的基礎(有關更多信息,請參見第Section 1.2)。 接下來的2到60個字節將被檢查,并可用于QoS(服務質量)或交換機做出的策略決策(有關更多信息,請參見Section 2)。 數據包的最后四個字節包含數據包的幀檢查序列(FCS)。 FCS必須滿足該數據包的IEEE 802.3 CRC-32要求,否則將被丟棄(除非允許處理帶有CRC錯誤的幀,請參閱端口偏移量0x08中的“允許錯誤的CRC”位)。
在發送數據包之前,發送模塊必須檢查該線路是否可用于傳輸。 當端口處于全雙工模式時,傳輸線始終可用,但是如果端口處于半雙工模式,則傳輸線可能正忙于接收數據包。 如果線路繁忙,則發送器通過延遲其發送來等待。 當線路可用時,發送器確保在幀前發送56位前同步碼和8位幀起始定界符(SFD)之前,至少出現96位的最小數據包間間隙。 幀的實際傳輸在SFD之后立即開始。
對于半雙工模式,設備還在發送時監視沖突信號。 如果檢測到沖突(即PHY的發送器和接收器同時
處于活動狀態),則MAC發送JAM模式,然后將重傳延遲由IEEE 802.3退避算法確定的隨機時間
段。 在全雙工模式下,將忽略沖突信號和退避算法。
PS:該設備有12個MAC:執行802.3協議中的所有的功能包括如下的退避等。
1.1.3.1退避算法
在半雙工模式下,設備的 mac 實現 ieee802.3 標準中定義的截斷二進制指數退避算法。該算法首先隨機選擇一個較小的退避時間,然后逐步生成較長的隨機退避時間。隨機時間的作用是阻止兩個或多個mac 同時嘗試重新傳輸。退避時間越長,隨機范圍越寬,但延遲越長,擁塞鏈路越有可能找到一個成功的發送器。當丟棄的多余位被清除為零(全局1 偏移0x04)時,設備中的每個MAC 在16 次連續的重新傳輸試驗之后重置逐漸延長的退避時間。然后,每個 MAC 以最短的隨機退避時間重新啟動退避算法,并繼續重試和重新傳輸幀。連續發生沖突的數據包被重新傳輸,直到傳輸成功。這種算法可以防止在高度擁擠的環境中丟包。交換機中的 mac 被配置為滿足 IEEE 802.3 規范,并在連續 16 次沖突后丟棄幀,而不是在丟棄被設置為 1(全局 1 偏移 0x04)時重新啟動退避算法。在CSMA/CD協議中,一旦檢測到沖突,為降低再沖突的概率,需要等待一個隨機時間,然后再使用CSMA方法試圖傳輸。為了保證這種退避維持穩定,采用了二進制指數退避算法的技術,其算法過程如下:
1.確定基本退避時間,一般為端到端的往返時間為2t,2t也稱為沖突窗口或爭用期。
2. 定義參數k,k與沖突次數有關,規定k不能超過10,k=Min[沖突次數,10]。在沖突次數大于10,小于16時,k不再增大,一直取值為10。
3. 從離散的整數集合[0,1,2,……,(2k-1)]中隨機的取出一個數r,等待的時延為r倍的基本退避時間,等于r x 2t。r的取值范圍與沖突次數k有關,r可選的隨機取值為2k個、這也是稱為二進制退避算法的起因。
4.當沖突次數大于10以后,都是從0—210-1個2t中隨機選擇一個作為等待時間。
5. 當沖突次數超過16次后,發送失敗,丟棄傳輸的幀,發送錯誤報告。
舉例
如果第二次發生碰撞:
n = 2
k = MIN(2,10) = 2
R = {0, 1, 2, 3)
延遲時間 = R * 512 * Bit-time
其中:Bit-time = 1 / Debit
例如:
對于傳輸速率Debit = 10 Mbit/s,
那么Bit-time = 0.1 us
延遲時間={0, 51.2 us, 102.4 us, 153.6 us} 其中任取一
PS:該算法在芯片內部自動完成不需要編程實現
1.1.3.2半雙工流控:
半雙工流控制用于限制終端站的吞吐速率,以避免在網絡擁塞時丟棄數據包。 通過FLOW配置引腳在所有半雙工端口上啟用該功能(有關詳細信息,請參見設備的數據表)。 通過強制端口的流控制模式(端口偏移量0x02中的FCValue和ForcedFC,索引0x10),可以在任何特定端口上啟用或禁用流控制。 該設備使用基于混合載波斷言和沖突的方案來執行半雙工流控制。 當可用緩沖區空間幾乎為空時,MAC發出載波和/或沖突,從而阻止進一步傳入的數據包。 僅對擁塞中涉及的端口進行流量控制。 如果未設置半雙工流控制模式,并且沒有可用的數據包緩沖區空間,則將丟棄傳入的數據包。半雙工流控制不是IEEE定義的功能。 下一節將介紹IEEE定義的全雙工流控制。
PS:通過FCValue和ForcedFC來控制避免丟包
1.1.3.3全雙工流控:
IEEE 802.3流量控制機制要求兩個鏈接對端端口自動協商并公布其流量控制功能。 如果兩個鏈接對端端口都具有流控制功能,則將在兩個鏈接對端端口的MAC中啟用流控制。PHY用于通告功能而流控制本身是MAC的功能。 IEEE流控制還需要全雙工操作。全雙工流控制的目的與半雙工中的相同–避免在擁塞期間丟棄數據包。 如果未設置全雙工流控制模式,并且沒有可用的數據包緩沖區空間,則將丟棄傳入的數據包。如果在端口上啟用了自動協商,并且鏈路對端端口“宣稱”它支持在自動協商期間暫停,則通過流配置引腳在所有全雙工端口上啟用全雙工流控制(有關詳細信息,請參閱設備的數據表)。基本上,在端口上自動啟用全雙工流控制 除非:
1、該端口的PHY正在宣傳它支持流量控制。
還有
2、該端口的PHY看到其鏈接對端端口也在宣傳其也支持流控制(一旦建立鏈接)。
FLOW配置引腳確定此設備的PHY中的初始流控制通告位設置。復位后不久,該引腳的值就會被交換機移至外部PHY。使用FLOW配置引腳啟用流量控制后,所有相同類型的端口(即在所有具有流量可控鏈路對端端口的半雙工端口或所有全雙工端口上)都啟用了流量控制。 可能需要僅在一個或兩個端口上啟用流控制,并在所有其他端口上禁用流控制。 在這種情況下,應通過FLOW配置引腳禁用流量控制,這將禁用所有端口上的流量控制。 然后可以將選擇啟用流量控制的端口配置為發布流量控制。 這可以通過使用SMI PHY命令和數據寄存器-全局2偏移量0x18和0x19來完成。在全雙工模式下,設備的MAC支持IEEE 802.3標準中定義的流控制。 這種流控制機制使在遠程節點上停止和重新開始數據包傳輸成為可能。 執行全雙工流控制的基本機制是通過暫停幀。 暫停幀的格式如Table 1所示。
PS:要求兩個對端端口公布其流量控制功能,避免丟包。當緩存空間快用完了的時候會丟棄數據包,空間的大小為watermark
通過暫停幀來控制DA:01-80-c2-00-00-01<-SA<-type<-op code<-pause time<-padding<-FCS
1.1.3.4在MAC中有強制流控的功能
1.1.3.3 節描述了IEEE定義的流控制機制,該機制需要與鏈接對端端口進行自動協商。 某些端口可能未連接PHY,或者可能已連接PHY而沒有自動協商。 在這種情況下,可以通過強制端口的流控制模式(端口偏移量0x02中的FCValue和ForcedFC,索引0x10)來啟用或禁用流控制。 以這種方式強制進行流控制將指示端口的MAC在需要時發送暫停幀,并根據接收到的消息采取行動
暫停幀。 它不會更改端口PHY中的播發位1.
如果端口連接了PHY(內部或外部),并且啟用了自動協商,那么如果端口處于全雙工模式,最好不要強制流控制(通過使用FCValue和ForcedFC)。相反,設置PHY的自動協商流控制播發位,以允許在端口的鏈路伙伴同意的情況下自動進行流控制。
PS:通過FCValue和ForcedFC來控制避免丟包對全雙工同樣適用。
1.1.3.5干擾控制-出口限制
完美的流控制,即沒有數據包丟失,(全雙工或半雙工)會導致網絡問題。一個潛在的問題
可能會發生在兩個交換機盒之間,這兩個交換機盒同時暫停彼此在同一時間關閉,這樣兩個
交換機盒都不能耗盡它們的全部緩沖區。這種非常罕見但可能的情況會導致兩個交換機盒之
間的鏈路死鎖。通過限制端口可以傳輸的背對背暫停刷新次數,從而限制鏈路伙伴可以暫停
的最長時間,允許清除死鎖,很容易解決這個問題。端口的限制寄存器(端口偏移量0x02,
索引0x01)控制端口可以暫停其鏈路伙伴的最大暫停次數。限制寄存器的范圍足夠大,以確
保在正常、甚至極端的網絡擁塞情況下零丟包,同時確保不發生死鎖情況。
1.1.3.6干擾控制-入口限制
當在端口上啟用流控制時,它可以被其鏈路伙伴暫停,這樣端口就永遠不能傳輸任何幀。這可能是上述問題(Section 1.1.3.5)的結果,也可能是DoS攻擊(拒絕服務)。 端口的LimitIn寄存器(端口偏移0x02,索引0x00)可用于限制端口的出口隊列被阻塞的時間。 一旦達到編程的限制,將在端口上強制關閉流控制,并向CPU生成中斷(如果啟用–全局2偏移量0x00和0x01)。 軟件可以通過檢查端口流量控制強制位來確定哪個端口已達到限制。 在達到限制的任何端口上都將強制關閉流控制(在端口偏移量0x02(索引0x10)中,ForcedFC = 1,FCValue = 0)。 軟件可以更改這些位的值(通過將端口的ForcedFC位清零)來重新啟用端口上的流控制。
如果端口處于全雙工模式,則在最后一個暫停時間到期后,端口上的流控制功能自動禁用將允許幀退出端口。 但是,如果端口處于半雙工模式,則來自鏈接伙伴的持續沖突仍然可以防止幀離開阻塞的端口。 因此,即使在半雙工端口上禁用了流量控制,也會在這些端口上激活“卡紙限制”中斷。 軟件可以采取措施來啟用DiscardExcessive(請參見Section 1.1.3.1或全局1偏移量0x04)或禁用或阻止端口(請參閱端口偏移量0x04中的端口狀態)。 在這兩種情況下,目標都是釋放阻塞的緩沖區供其他端口使用(請參見Section 2.6)。
PS:防止兩臺級聯的交換機同時暫停對方并關閉該端口,這樣他們會死鎖,干擾可以防止上述的情況
1.1.3.7在 MAC 中強制鏈接、速度和雙工:
在MAC中強制鏈接、速度和雙工通過使用端口的ForcedLink,ForcedDpx和ForceSpd寄存器(端口偏移0x01),可以在端口的MAC上強制使用Link,Speed和Duplex。在端口的MAC上強制使用這些模式之一時,必須格外小心。 例如:除非端口的Link斷開,否則不要更改MAC的Speed或Duplex。這些位僅更改端口的MAC模式! 對于連接PHY的端口,它不會更改PHY的模式。 這些位僅用于以下情況:
當沒有PHY連接到端口時。 這包括連接到CPU的端口(通常使用MII或GMII之類的數字接口)。
未連接PHY的端口將關閉其Link,直到軟件強制端口的Link up。
PS:通過使用端口的 ForcedLink,ForcedDpx 和 ForceSpd 寄存器(端口偏移 0x01)
1.1.3.8基于MAC和策略的RMON /統計計數器
除了集成管理處理器(IMP)端口外每個端口維護一組60個32位和兩個64位的計數器,這些計數器可以統計入口和出口的以太網信息。支持RMON組1、2、3、9所有的端口還支持一組簡單的調試計數器。
支持RFC2819/1757/1271(RMON)、RFC2665/1643/1623(以太網)、RFC2233/1573/1213/1229/1158(MIB)、RFC1493/1286(橋)
因為CPU寄存器的接口速度比千兆或快速以太網要慢所以計數器統計數據可以放入以太網幀中來傳遞。
每個寄存器的完整說明在表2、3,MAC:在表4、5
1. 以太網相關2.單播、組播、廣播、暫停
3.FSC 4.統計僅入口,僅出口,以及出口和入口
Cpu接口在統計計數器上支持
清除所有端口的所有計數器
清除單個端口的所有計數器
捕獲單個端口的所有計數器
讀取捕獲的計數器(必須先執行捕獲,然后才能完成對捕獲區域的讀取
寄存器在(全局 1 偏移量 0x1D)
1.1.3.9調試計數器:
該設備每個端口維護一小組調試計數器(兩個8位計數器),使用戶能夠監視基本網絡操作。它們旨在用于新硬件和/或軟件的初始調試。 這些計數器位于端口偏移量0x1F中,并具有以下兩種操作模式:
1、計算接收到的好幀的數量并計算接收到的壞幀的數量
2、計算傳輸的幀數并計算傳輸期間的沖突數
第一種操作模式指示到交換機的連接是否良好(無不良幀),以及軟件是否成功獲得了到交換機的任何幀(兩個計數器都不為零)。
第二種模式操作表明幀成功通過了交換機,并且端口配置正確(即如果期望全雙工操作,則應該沒有沖突)。這些計數器所處的模式由CtrMode位(全局1偏移量0x1C)配置。 CtrMode位確定所有端口中所有調試計數器的模式,并且切換該位將導致清除所有調試計數器。
與千兆位甚至快速以太網幀的速度相比,所有CPU寄存器接口的速度都較慢。 由于這個原因,所有與端口關聯的RMON計數器數據都可以放入以太網幀中并傳輸到CPU(或其他設備)。 支持兩個選項,一個MIB轉儲和一個MIB轉儲和清除。 請參閱Section 7中描述的遠程管理。
用于新硬件或軟件的初始調試位于0x1F只有兩個8位計數器
PS:有以下兩種模式:
計算接收到的好幀的數量并計算接收到的壞幀的數量
計算傳輸的幀數并計算傳輸期間的沖突數
同上的:因為CPU寄存器的接口速度比千兆或快速以太網要慢所以計數器統計數據可以放入以太網幀中來傳遞。
總結
以上是生活随笔為你收集整理的交换机芯片笔记1.1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10电脑突然黑屏 亮屏后出现d-s
- 下一篇: 【ETL工具】-Kettle详细教程