一種隊列報告方法、裝置和無源光網絡系統的製作方法
2023-09-19 20:37:50 1
專利名稱::一種隊列報告方法、裝置和無源光網絡系統的製作方法
技術領域:
:本發明涉及通信
技術領域:
,具體涉及一種隊列報告方法、隊列報告裝置和無源光網絡。
背景技術:
:EthernetPassiveOpticalNetwork(乙太網無源光網糹各,EPON)是將乙太網技術和無源光網絡緊密結合的光纖接入網絡。EPON由OpticalLineTerminal(光線^各終端,OLT)、OpticalDistributionNetwork(光分配網糹各,ODN)和OpticalNetworkUnit/OpticalNetworkTerminal(光網絡單元/光網絡終端,ONU/ONT)組成。OLT位於中心局端,負責管理、監控和維護整個EPON。OLT通過ODN與一個或多個ONU/ONT連接。ONU/ONT位於用戶側即遠端,負責用戶和業務的接入。ONU/ONT的邏輯晶片內可以設計有一個或多個邏輯鏈路通道,OLT會為每個註冊的邏輯鏈路通道分配LogicalLinkIdentifier(邏輯鏈路標識,LLID),一個邏輯鏈路通道可以支持多個優先級隊列。ONU/ONT向OLT發送數據時,會先各OLT(也可理解為局端)發送一個帶寬授權請求,OLT收到請求後會為ONU/ONT中的邏輯鏈路通道分配一個固定的Grant(帶寬授權或帶寬許可),Grant是一段時間窗口(或者叫做發送時隙),邏輯鏈路通道在這段時間內來發送優先級隊列中的乙太網報文。邏輯鏈路通道在分配的Grant中發送乙太網報文的過程如附圖l所示。圖1中,首先,邏輯鏈路通道在Grant中的StartTime(開始時間,即時間窗口的起始時刻)打開雷射器;然後,邏輯鏈路通道向OLT發送Idle碼,以便於OLT進行碼流和時鐘的同步;之後,邏輯鏈路通道發送上行乙太網報文(如圖1中的Frame1~3);最後,邏輯鏈路通道根據Grant中的GrantLength(Grant長度,即時間窗口的結束時刻)在最後一段時間內關閉雷射器。在實現本發明的過程中,發明人發現上述現有技術至少存在如下問題由於OLT分配的Grant是一個固定值,因此,當發送某些報文時(如圖l中的Frame4),報文的帶寬長度會超出開始關閉雷射器的時間帶寬,在這種情況下,邏輯連結通道為了能按時關閉雷射器,將不會發送這些報文,這樣,就使得圖l中的報文Frame3到開始關閉雷射器的時間之間的時間帶寬被浪費,影響了EPON上行帶寬利用率。
發明內容本發明實施方式提供的一種隊列報告方法、裝置和無源光網絡系統,可準確的計算出隊列報告,得到局端能根據上報的隊列報告分配合適的帶寬,提高了上行帶寬利用率,且邏輯實現筒單。本發明實施方式提供的隊列報告方法,包括針對實體隊列對應有至少一個閾值,一個所述閾值對應一個虛擬隊列,所述閾值表示所述虛擬隊列最大深度,所述方法包括步驟在判斷出數據報文向光纖發送時,根據所述閾值對所述虛擬隊列執行出隊操作;判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;針對所述虛擬隊列生成隊列報告,並上報所述隊列報告。上述隊列報告裝置包括所述裝置中有實體隊列,所述實體隊列對應有至少一個閾值,一個所述閾值對應一個虛擬隊列,所述閾值表示所述虛擬隊列最大深度,所述裝置包括第一判斷單元,用於判斷是否有數據報文向光纖發送;虛擬隊列出隊管理單元,當所述報文發送判斷單元判斷出數據報文向光纖發送時,根據所述閾值對所述虛擬隊列執行出隊操作;隊列是否執行了出隊操作;虛擬隊列入隊判斷單元,用於判斷是否允許所述虛擬隊列執行入隊操作;虛擬隊列入隊操作單元,用於根據所述第二判斷單元確定出所述實體隊列有數據報文入隊或者所述虛擬隊列執行了出隊才喿作,且根據所述虛擬隊列入隊判斷單元判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;報告單元,用於針對所述虛擬隊列生成隊列報告,並上報所述隊列報告。上述無源光網絡系統包括終端設備,所述設備包括光網絡終端,或者光網絡單元;局端設備,所述局端設備包括光線路終端;所述終端i殳備對應有至少一個閥值,一個所述閾值對應一個虛擬隊列,所述閥值表示所述虛擬隊列最大深度;所述終端設備在判斷出數據報文向光纖發送時,根據所述閥值對所述虛擬隊列執行出隊操作;了出隊操作,且判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列4丸行入隊才乘作;針對所述虛擬隊列生成隊列報告,並上報所述隊列報告給所述局端設備;所述局端設備接收所述隊列報告,並根據所述隊列報告給所述終端設備分配合適的帶寬授權。上述技術方案通過設置多個閥值,每個閥值對應一個虛擬隊列,並通過設計虛擬隊列的入隊出隊操作,使針對虛擬隊列計算出的隊列報告能夠儘可能準確地反映出下一次帶寬授權時不同閾值對應的本端所需的上行帶寬,並將隊列報告實時向局端報告,這樣,當局端獲取這些隊列報告後,可以根據報告的內容為邏輯連結通道分配合適的帶寬,從而提高了上行帶寬利用率。同時,上述技術方案還具有邏輯結構簡單,易於實現等特點。為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖l是現有技術的邏輯鏈路通道發送乙太網報文的示意圖;圖2是本發明實施例一的實體隊列與虛擬隊列的示意圖;圖3A是本發明實施例一的虛擬隊列的出隊過程流程圖;圖3B是本發明實施例一的虛擬隊列的入隊過程流程圖;圖3C是本發明實施例一有閾值的實體隊列示意圖;圖4是本發明實施例二的虛擬隊列入出隊過程流程圖;圖5是本發明實施例三的隊列淨良告裝置示意圖;圖6是本發明實施例四無源光網絡系統示意圖。具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。實施例一、隊列報告方法。為了充分利用EPON上行帶寬,邏輯鏈路通道向OLT發送數據報文時,可以先向OLT發送一個隊列報文(或者叫做REPORT報文),在該REPORT報文中包含了需要發送的數據報文的帶寬(長度),OLT根據REPORT報文中的信息為邏輯鏈路通道分配合適的帶寬,從而提高EPON上行帶寬的利用率。為了使得REPORT報文中的信息能夠實時反映當前發送數據報文所需的帶寬,本發明實施例為實體隊列設置多個閾值,每個閾值對應一個虛擬隊列,通過對虛擬隊列的入隊和出隊操作,來生成REPORT報文。在本實施例中,實體隊列為數據報文的真正載體,實體隊列的入隊表示數據進入隊列準備發送;實體隊列出隊表示將數據從隊列中出隊,向OLT發送。多個閾值用於對應於多個虛擬隊列,用於管理隊列報告,生成合適的REPORT報文。在本發明實施例中,實體隊列、閾值和虛擬隊列三者之間的關係包括針對實體隊列對應有一個或多個閾值,即一個實體隊列對應有至少一個閾值;一個閾值對應一個虛擬隊列,一個閾值可以表示出該閾值對應的虛擬隊列的最大深度,這裡的深度也可理解為報文開銷或報文長度等,即需要發送的報文的帶寬,如有兩個報文,第一個報文長300位元組,第二個報文長100位元組,再加上每個報文發送到光纖時所需要的前導符(8位元組)、幀間隔(12位元組),則兩個報文總共佔據的深度(或帶寬)為(300+8+12)+(100+8+12)=440位元組;如果假設lTQ=16ns=16bit=2位元組,則這兩個報文的深度為440/2=220TQ。在閾值為一個的情況下,該閾值可以小於或等於實體隊列的最大深度;在閾值為多個的情況下,其中一個閾值可以等於實體隊列的最大深度,而其他閾值均應小於實體隊列的最大深度;當然,所有的閾值也可以均小於實體隊列的最大深度。這裡的實體隊列可以為一個,也可以為多個。在實體隊列為多個情況下,針對各實體隊列設置的閾值可以相同,也可以不相同。另外需要說明的是,在針對一個實體隊列設置的閾值為多個的情況下,多個閾值的取值可以各不相同。上述與閥值對應的虛擬隊列可以看作是一個數值,該數值為對應於某一閾值的相關報文的帶寬,對虛擬隊列的入隊或出隊相當於改變這個數值的大小。從上述描述可知,本實施例中的一個實體隊列可以對應一個或多個虛擬隊列。一個實體隊列對應4個虛擬隊列的一個具體例子如圖2所示。圖2中的實體隊列包括兩部分,一部分是從圖中實體隊列頭到實體隊列尾,以隊列形式存在的數據報文;另一部分是已經出隊,位於中間FIFO的數據報文(數據報文並不是出隊後立即被送到光纖發送,中間可能會先存在FIFO當中)。針對圖2中的實體隊列設置了4個閾值,即閾值l、閾值2、閾值3和閾值4,4個闞值按照從小到大的順序依次是閾值l、閾值2、閾值3和閾值4。其中的閾值4等於實體隊列的最大深度,即閾值4對應的虛擬隊列的最大深度與實體隊列的最大深度相同。實體隊列的最大深度不限,實際使用中可根據硬體資源選擇合適的深度。尾在數據報文入實體隊列時發生改變。而虛擬隊列頭在數據報文向光纖發送時時,有可能發生改變。在從實體隊列中出隊的數據報文還需要經過中間過程(如中間FIFO)才能夠向光纖發送的情況下,實體隊列頭和虛擬隊列頭不會同時發生改變。在從實體隊列中出隊的數據報文不需要經過中間過程而直接向光纖發送的情況下,實體隊列頭和虛擬隊列頭可以同時發生改變。需要說明的是,圖2所示的實體隊列和各虛擬隊列都採用了從隊尾入隊,隊頭出隊的入出隊方式,其實,圖2中的實體隊列和虛擬隊列也完全可以採用從隊頭入隊,隊尾出隊的入出隊方式。在採用隊尾入隊、隊頭出隊的入出隊方式的情況下,所有的虛擬隊列可以具有共同的隊頭。在採用隊頭入隊、隊尾出隊的入出隊方式的情況下,所有的虛擬隊列可以具有共同的隊尾。在採用隊尾入隊、隊頭出隊的入出隊方式的情況下,在數據報文向光纖發送時,所有的虛擬隊列和實體隊列可以具有共同的隊頭,在數據報文從實體隊列出隊,但是還沒有向光纖發送時(如從實體隊列出隊的數據報文在中間FIFO中),雖然所有虛擬隊列具有共同的隊頭,但是,實體隊列頭和虛擬隊列頭並不一致。在採用隊頭入隊、隊尾出隊的入出隊方式的情況下,在數據報文向光纖發送時,所有的虛擬隊列和實體隊列可以具有共同的隊尾,在數據報文從實體隊列出隊,但是還沒有向光纖發送時(如從實體隊列出隊的數據報文在中間FIFO中),雖然所有虛擬隊列具有共同的隊尾,但是,實體隊列隊尾和虛擬隊列尾並不一致。在實施例一中,實體隊列可以採用鍊表的形式來實現。此時,實體隊列鍊表可以採用現有的鍊表管理方式。在從實體隊列中出隊的數據報文還需要經過中間過程才能夠向光纖發送的情況下,針對實體隊列鍊表的鍊表管理方式與現有的鍊表管理方式的區別在於實體隊列資源回收環節,所謂資源回收是指讓已經出隊的數據報文原來佔用的空間能讓後續的報文繼續使用。實體隊列資源回收環節的區別包括在現有的鍊表管理方式中,數據報文從實體隊列中出隊時,進行實體隊列資源回收;而在本實施例一中,在數據報文要向光纖發送時(如數據報文從實體隊列中出隊、且經過了中間的各FIFO後,要向光纖發送時),才進行實體隊列資源回收,從而可以使虛擬隊列表示出的已佔用空間和實體隊列中不能被後續需要進入實體隊列的數據報文所使用的空間相對應。隊具體實現過程來實現,因此,在本實施例中不再詳細說明實體隊列的入出隊具體實現過程。本實施例中虛擬隊列的入出隊具體實現過程包括如下內容虛擬隊列的出隊過程包括在判斷出數據報文向光纖發送的情況下,進行虛擬隊列出隊操作。即虛擬隊列的出隊過程包括虛擬隊列的出隊判斷操作和虛擬隊列的出隊操作。虛擬隊列的出隊判斷操:作和虛擬隊列的出隊才喿作的流程如附圖3A所示。圖3A中,S300、判斷數據報文是否向光纖發送;若判斷得到有數據報文向光纖發送,則執行步驟S310,執行虛擬隊列的出隊操作;否則,執行S320。S310、執行該虛擬隊列的出隊操作;虛擬隊列出隊操作可以為計算虛擬隊列的當前深度與向光纖發送的數據報文(即虛擬隊列的出隊數據報文)所佔用的帶寬的差,並將虛擬隊列的當前深度調整為計算出的差值。即在本虛擬隊列的當前長度的基礎上減去該數據才艮文所佔用的上行鏈路的時間。數據報文所佔用的帶寬(即數據報文所佔用的上行鏈路的時間)不僅包括數據報文的長度,還可以包括數據報文的附加開銷。附加開銷如幀間隙和前導碼,再如幀間隙、前導碼和前向糾錯碼等。虛擬隊列出隊操作還包括調整出隊方向對應的指針,出隊方向對應的指針根據數據報文從隊頭入隊還是從隊尾入隊會有所不同;例如,如果數據報文從隊頭進入虛擬隊列,則出隊方向對應的指針為虛擬隊列尾指針,如果數據報文從隊尾進入虛擬隊列,則出隊方向對應的指針為虛擬隊列頭指針。例如,在如圖2所示的隊列中,如果虛擬隊列出對,則將虛擬隊列頭指針向下移動。S320、不執行虛擬隊列的出隊操作。虛擬隊列的入隊過程包括在實體隊列有數據報文入隊或者虛擬隊列進行出隊操作的情況下,執行是否允許入隊的判斷操作,在確定出虛擬隊列允許入隊時,執行虛擬隊列入隊操作,否則,不執行虛擬隊列入隊操作。即虛擬隊列的入隊過程包括虛擬隊列的入隊判斷操作和虛擬隊列的入隊操作。本實施例中,實體隊列有數據報文入隊可以觸發虛擬隊列的入隊判斷4喿作,虛擬隊列的出隊操作也可以觸發虛擬隊列的入隊判斷操作。虛擬隊列的入隊判斷操作和虛擬隊列的入P人操作的流程如附圖3B所示。圖3B中,S330、本實施例的虛擬隊列的入隊判斷才乘作和虛擬隊列的入隊才喿作的流程開始,到S340。S340、判斷實體隊列是否有數據報文入隊以及是否執行了虛擬隊列出隊操作,即判斷是否觸發了虛擬隊列入隊判斷操作,如果判斷出實體隊列有數據報文入隊或者執行了虛擬隊列出隊操作,即判斷出有觸發虛擬隊列入隊判斷操作,則到S350,否則,返回S340,繼續判斷是否觸發了虛擬隊列入隊判斷梯:作。S350、執行虛擬隊列入隊判斷4喿作,如果判斷的結果為允許虛擬隊列入隊,則到S360,否則,到S370。虛擬隊列入隊判斷操作也就是判斷是否需要在當前隊列報告中加上某一數據報文所需要佔用的上行帶寬,這裡的某一數據報文即需要進入實體隊列的數據報文。在S340判斷出實體隊列有數據報文入隊或執行虛擬隊列出隊操作的情況下,S350的虛擬隊列的入隊判斷操作的一個具體的例子為判斷實體隊列入隊的數據報文所佔用的帶寬與虛擬隊列的當前深度之和是否超過該虛擬隊列的最大深度;如果不超過虛擬隊列的最大深度,則確定虛擬隊列允許入隊,到S360;否則,確定虛擬隊列不允許入隊,到S370。在數據報文從隊尾入隊的情況下,虛擬隊列的入隊判斷操作的一個具體的例子為該虛擬隊列尾指針不是實體隊列尾指針或者雖然虛擬隊列尾指針是實體隊列尾指針但實體隊列不為空、且虛擬隊列的當前深度加上即將入隊的數據報文所佔用的帶寬之和小於該虛擬隊列的閾值,確定虛擬隊列允許入隊。S360、針對需要入虛擬隊列的數據報文執行虛擬隊列的入隊操作。虛擬隊列的入隊操作的一個具體的例子為將虛擬隊列的當前深度調整為虛擬隊列的當前深度與允許入隊的數據報文所佔用的帶寬的和。數據才良文所佔用的帶寬不僅包括數據報文的長度,還可以包括數據報文的附加開銷。附加開銷如幀間隙、前導碼以及前向糾錯碼等。虛擬隊列入隊操作還包括根據虛擬隊列的入隊數據報文所佔用的帶寬調整入隊方向對應的指針,入隊方向對應的指針根據數據報文從隊頭入隊還是從隊尾入隊會有所不同;例如,如果數據報文從隊頭進入虛擬隊列,則入隊方向對應的指針為虛擬隊列頭指4h如果悽t據4艮文/人隊尾進入虛擬隊列,則入隊方向對應的指針為虛擬隊列尾指針。在數據報文從隊尾入隊的情況下,虛擬隊列的入隊操作的一個具體的例子S370、不執行虛擬隊列的入隊操作,本次虛擬隊列的入隊判斷梯二作和虛擬隊列的入隊操作結束。需要說明的是,上述圖3A和圖3B描述的虛擬隊列的入出隊過程都是針對一個虛擬隊列進行描述的,如果一個實體隊列對應有多個虛擬隊列,則每個虛擬隊列都應進行上述虛擬隊列的入出對判斷和執行操作,直至找到允許入隊的虛擬隊列。另外,圖3A和圖3B所示的流程可以並行執行。而且,當一個實體隊列對應有多個虛擬隊列時,各虛擬隊列可以按照一定順序(如閾值從小到大的順序)執行上述圖3A和圖3B所示的流程,當然,各虛擬隊列對應的圖3A和圖3B所示的流程也可以並行執行。還有,虛擬隊列的入隊判斷操作可以在數據報文向光纖發送的過程中進行,這樣,不但可以去除從實體隊列出隊到出隊的數據報文向光纖發送之間的內部傳輸路徑中的數據報文對隊列報告準確性的影響,而且,還為隊列判斷和入隊操作預留了充足的時間,為隊列報告的準確計算以及隊列報告的可實施性打下了良好的基礎。在需要發送隊列報告時,針對實體隊列對應的所有虛擬隊列生成隊列報告,並向局端(如OLT)上報隊列報告。這裡的隊列報告可以為基於多閾值隊列集的隊列報告。本實施例中的生成隊列報告即根據設置的多個閾值分別計算不超過閾值所示帶寬的完整數據報文所需要的上行帶寬。基於多閾值隊列集的隊列報告的一個具體例子為參見圖3C,設定有兩個實體隊列,即隊列1和隊列2,隊列1和隊列2均對應有優先級,如隊列l對應的優先級最高,隊列2對應的優先級次高。隊列l和隊列2對應的優先級如業務優先級。圖3C中,隊列1包含4個數據報文,標號分別為#1,#2,#3和糾,各個數據報文的長度分別為300,100,500,1000,單位為字節。隊列2中也包含4個報文,標號分別為#5,#6,#7和#8,長度分別為200,400,600和800,單位也是字節。針對這兩個實體隊列均i殳置了三個閾值,即Thresholdl、Threshold2和Threshold3,則生成的隊列報告是針對3個隊列集的隊列報告,一個隊列報告報文中可以包含多個隊列報告,每個隊列集包括的數據報文(數據報文即表l中的幀)如表l所示表ltableseeoriginaldocumentpage17從表l可以看出,三個閾值的大小各不同,如果按照閾值從小到大的順序對閾值進行排列,則該順序為Thresholdl、Threshold2和Threshold3;最大的閾值可以與實體隊列的最大深度相同。隊列報告可以體現出隊列集中的數據報文向局端發送時所需要的帶寬(即時長),帶寬的單位可以是TQ,lTQ=16ns=16bit-2位元組。需要發送隊列報告的時間點可以是當前帶寬授權即將結束時,例如,可以在當前帶寬授權結束前且發送最後一個數據報文之後,發送利用上述方法生成的隊列報告,然後,關閉雷射器,當前帶寬授權結束。例如,在要關閉雷射器時,生成並發送隊列報告(即REPORT報文),以保證隊列報告中的計算結果的準確性。另外需要說明的是,在本實施例中,生成隊列報告與發送隊列報告之間的時間間隔應儘可能的短,最好是在生成隊列報告後立即發送該隊列報告。還有,REPORT報文中可以包含有REPORT報文所佔用的帶寬,從而局端根據REPORT報文進行的帶寬授權能夠使下一個REPORT報文順利上報。在REPORT報文中沒有包含REPORT報文所佔用的帶寬的情況下,局端在進行帶寬授權時,可以主動考慮REPORT報文所佔用的帶寬,以保證下一個REPORT報文能夠順利上報。REPORT報文所佔用的帶寬可以是一個預先設置的固定值。從上述實施例一的描述可以看出,本實施例針對實體隊列對應有多個閾值,每個閾值對應一個虛擬隊列,並通過"i殳計虛擬隊列的入隊出隊操:作,使虛擬隊列中的數據報文能夠反映出不同閾值對應的所有需要向局端發送的數據報文,使針對虛擬隊列計算出的隊列報告能夠準確地反映出本端所需的上行帶寬,這樣,當局端獲取這些隊列報告後,可以根據報告的內容為邏輯連結通道分配合適的帶寬,從而提高了上行帶寬利用率;並且通過在生成隊列報告後實時發送隊列報告,且發送隊列報告的時間為在當前帶寬授權結束前發送最後一個數據報文之後,使隊列報告能夠進一步準確地反映出下次帶寬授權時本端所需的上行帶寬。同時,本發明實施例利用虛擬隊列方便簡單的實現了針對實體隊列設置的閾值,通過設計虛擬隊列的入隊出隊操作能夠方便準確的針對虛擬隊列計算出隊列報告,使隊列報告的邏輯實現簡單。下面以EPON為例對本發明的隊列報告方法和裝置進行說明。實施例二、隊列報告方法中虛擬隊列的入隊出隊過程。該入隊出隊過程如附圖4所示。圖4中,S400、本實施例的隊列才艮告方法中的虛擬隊列的入隊出隊流程開始執行,到S410。S410、判斷是否有數據報文要向光纖中發送,如果有數據報文要向光纖中發送,則到S430,否則,到S420。S420、判斷實體隊列是否有數據報文入隊,如果有數據報文入隊,則到S440,否則,到S470。S430、執行虛擬隊列出隊操作,之後到S440。在EPON中,在向光纖發送數據報文時,該數據報文一定能夠完整的發往光纖,基於EPON中的這一特點,本實施例可以在向光纖發送數據報文頭時,執行該數據報文的出隊操作。S440、執行虛擬隊列的入隊操作判斷,即判斷虛擬隊列是否允許入隊,如果判斷出需要執行虛擬隊列的入隊操作,則到S450,否則到S460。S450、執行虛擬隊列的入隊操作,到S460。S460、判斷是否所有的虛擬隊列都完成了入隊判斷和入隊操:作,如果所有的虛擬隊列都完成了入隊判斷和入隊梯:作,則到S470,否則,針對還沒有進行入隊判斷和入隊才喿作的虛擬隊列,到S440。S470、本次隊列報告方法中的虛擬隊列的入隊出隊流程結束。實施例三、隊列報告裝置本發明實施例還提供一種隊列報告裝置500,該裝置可以位於ONU/ONT中,具體實現形式可以為一塊單板,所述裝置中有實體隊列,所述實體隊列對應有至少一個閾值,一個所述閾值對應一個虛擬隊列,所述閾值表示所述虛擬隊列最大深度,所述裝置還包括第一判斷單元501,用於判斷是否有數據報文向光纖發送;其中,數據報文存在於實體隊列中,包括以隊列形式存在的數據報文和另一部分處於FIFO的數據報文。虛擬隊列出隊管理單元502,當所述報文發送判斷單元判斷出數據報文向光纖發送時,根據所述閾值對所述虛擬隊列執行出隊操作;第二判斷單元503,用於判斷所述實體隊列是否有數據報文入隊或者所述虛擬隊列是否執行了出隊操作;虛擬隊列入隊判斷單元504,用於判斷是否允許所述虛擬隊列執行入隊操作;虛擬隊列入隊操作單元505,用於根據所述第二判斷單元503確定出所述實體隊列有數據報文入隊或者所述虛擬隊列執行了出隊操作,且根據所述虛擬隊列入隊判斷單元判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;報告單元506,用於針對所述虛擬隊列生成隊列報告,並上報所述隊列報告。所述這隊列報告裝置500還包括資源回收單元507,用於在判斷出數據報文向光纖發送時,對所述數據報文所在的所述實體隊列進行資源回收,即讓已經出隊的數據報文原來佔用的空間能讓後續的報文繼續使用。括判斷所述實體隊列入隊的數據報文所佔用的帶寬與第一虛擬隊列當前深度之和是否超過所述第一虛擬隊列的閥值,如果不超過所述第一虛擬隊列的閾值,則允許所述第一虛擬隊列執行入隊操作;否則,不執行入隊操作;所述第一虛擬隊列為所述虛擬隊列的其中一個;所述虛擬隊列入隊判斷單元504還用於當判斷所述第一虛擬隊列不執行入隊操作,且存在多個所述閾值時,判斷所述實體隊列入隊的數據報文所佔用的帶寬與第二虛擬隊列當前深度之和是否超過第二虛擬隊列的閥值,如果不超過,則允許所述第二虛擬隊列執行入隊操作;否則,繼續判斷,直至找到允許入隊的虛擬隊列。虛擬隊列入隊操作單元505執行入搡作包括計算虛擬隊列的當前深度與虛擬隊列的入隊數據報文所佔用的帶寬的和,將虛擬隊列的當前深度調整為所述和,並根據所述虛擬隊列的入隊數據報文所佔用的帶寬調整入隊方向對應的指針;所述隊列報告裝置500還包括虛擬隊列出隊操作單元508,用於計算所述虛擬隊列的當前深度與所述虛擬隊列的出隊數據才艮文所佔用的帶寬的差;將虛擬隊列的當前深度調整為所述的差值,並根據所述虛擬隊列的出隊數據報文所佔用的帶寬調整出隊方向對應的指針。所述報告單元506上報所述隊列報告的時機為在當前帶寬授權結束前,發送最後一個數據4艮文之後。上述數據報文所佔用的帶寬不僅包括數據報文的長度,還可以包括數據報文的附加開銷。附加開銷如幀間隙、前導碼以及前向糾一睹碼等。對於本發明實施例中各單元的具體操作可以參考實施例一中的方法,在此不再贅述。本發明實施例針對實體隊列對應多個閾值,每個閾值對應於一個虛擬隊列,並通過設計虛擬隊列的入隊出隊操作,使虛擬隊列中的數據報文能夠反映出不同閾值對應的所有需要向局端發送的數據報文,使針對虛擬隊列計算出的隊列報告能夠準確地反映出本端所需的上行帶寬,這樣,當局端獲取這些隊列報告後,可以根據報告的內容為邏輯連結通道分配合適的帶寬,從而提高了上行帶寬利用率;並且通過在生成隊列報告後實時發送隊列報告,且發送隊列報告的時間為在當前帶寬授權結束前發送最後一個數據報文之後,使隊列報告能夠進一步準確地反映出下次帶寬授權時本端所需的上行帶寬。同時,本發明實施例利用虛擬隊列方便簡單的實現了針對實體隊列設置的閾值,通過設計虛擬隊列的入隊出隊操作能夠方便準確的針對虛擬隊列計算出隊列^^艮告,使隊列才艮告的邏輯實現簡單。實施例四、一種無源光網絡系統本發明實施例還提供了一種無源光網絡系統600,包括終端設備602,所述設備包括光網絡終端,或者光網絡單元;局端設備601,所述局端i殳備601包括光線^各終端;所述終端設備602對應有至少一個閥值,一個所述閾值對應一個虛擬隊列,所述閥值表示所述虛擬隊列最大深度;所述終端設備602在判斷出數據報文向光纖發送時,根據所述閥值對所述虛擬隊列執行出隊操作;所述終端設備602在確定出實體隊列有數據報文入隊或者所述虛擬隊列執行了出隊操作,且判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;針對所述虛擬隊列生成隊列報告,並上報所述隊列"^艮告給所述局端設備601;所述局端設備601接收所述隊列報告,並根據所述隊列報告給所述終端設備602分配合適的帶寬授權。所述局端設備601還用於在判斷出數據報文向光纖發送時,對所述數據報文所在的實體隊列進行資源回收;判斷所述實體隊列入隊的數據報文所佔用的帶寬與第一虛擬隊列當前深度之和是否超過所述第一虛擬隊列的閥值,如果不超過所述第一虛擬隊列的閾值,則允許所述第一虛擬隊列執行入隊操作;否則,不執行入隊操作;所述第一虛擬隊列為所述虛擬隊列的其中一個;當不執行入隊操作,且存在多個所述閾值時,判斷所述實體隊列入隊的數據報文所佔用的帶寬與第二虛擬隊列當前深度之和是否超過第二虛擬隊列的閥值,如果不超過,則允許所述第二虛擬隊列執行入隊梯:作;否則,繼續判斷,直至找到允許入隊的虛擬隊列;所述第二虛擬隊列為所述虛擬隊列的其中一個。所述終端設備602執行入隊操作包括計算虛擬隊列的當前深度與虛擬隊列的入隊數據報文所佔用的帶寬的和,將虛擬隊列的當前深度調整為所述和,並根據所述虛擬隊列的入隊數據報文所佔用的帶寬調整入隊方向對應的指針;所述設備執行出隊操作包括將虛擬隊列的當前深度調整為所述的差值,並根據所述虛擬隊列的出隊數據報文所佔用的帶寬調整出隊方向對應的指針;上述數據報文所佔用的帶寬不僅包括數據報文的長度,還可以包括數據報文的附加開銷。附加開銷如幀間隙、前導碼以及前向糾錯碼等。對於本發明實施例中各方法步驟的具體操作可以參考實施例一中的方法,在此不再贅述。本發明實施例針對實體隊列對應多個閾值,每個閾值對應於一個虛擬隊列,並通過設計虛擬隊列的入隊出隊操作,使虛擬隊列中的數據報文能夠反映出不同閾值對應的所有需要向局端發送的數據報文,使針對虛擬隊列計算出的隊列報告能夠準確地反映出本端所需的上行帶寬,這樣,當局端獲取這些隊列報告後,可以根據報告的內容為邏輯連結通道分配合適的帶寬,從而提高了上行帶寬利用率;並且通過在生成隊列報告後實時發送隊列報告,且發送隊列報告的時間為在當前帶寬授權結束前發送最後一個數據報文之後,使隊列報告能夠進一步準確地反映出下次帶寬授權時本端所需的上行帶寬。同時,本發明實施例利用虛擬隊列方便簡單的實現了針對實體隊列設置的閾值,通過設計虛擬隊列的入隊出隊操作能夠方便準確的針對虛擬隊列計算出隊列報告,使隊列報告的邏輯實現簡單。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的硬體平臺的方式來實現,當然也可以全部通過硬體來實施,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案對
背景技術:
做出貢獻的全部或者部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備雖然通過實施例描繪了本發明,本領域普通技術人員知道,本發明有許多變形和變化而不脫離本發明的精神,本發明的申請文件的權利要求包括這些變形和變化。權利要求1、一種隊列報告方法,其特徵在於,針對實體隊列對應有至少一個閾值,一個所述閾值對應一個虛擬隊列,所述閾值表示所述虛擬隊列最大深度,所述方法包括如下步驟在判斷出數據報文向光纖發送時,根據所述閾值對所述虛擬隊列執行出隊操作;在確定出實體隊列有數據報文入隊或者所述虛擬隊列執行了出隊操作,且判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;針對所述虛擬隊列生成隊列報告,並上報所述隊列報告。2、如權利要求1所述的隊列報告方法,其特徵在於,在判斷出數據報文向光纖發送時,還包括對所述數據報文所在的所述實體隊列進行資源回收。3、如權利要求1所述的方法,其特徵在於所述在確定出實體隊列有數據報文入隊或者執行虛擬隊列出隊操作,且判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作的步驟包括判斷所述實體隊列入隊的數據報文所佔用的帶寬與第一虛擬隊列當前深度之和是否超過所述第一虛擬隊列的閥值,如果不超過所述第一虛擬隊列的閾值,則允許所述第一虛擬隊列執行入隊操作;否則,不執行入隊操作;所述第一虛擬隊列為所述虛擬隊列的其中一個。4、如權利要求3所述的方法,其特徵在於當不執行入隊操作,且存在多個所述閾值時,判斷所述實體隊列入隊的數據報文所佔用的帶寬與第二虛擬隊列當前深度之和是否超過第二虛擬隊列的閥值,如果不超過,則允許所述第二虛擬隊列執行入隊操作;否則,繼續判斷,直至找到允許入隊的虛擬隊列。5、如權利要求l所述的方法,其特徵在於,所述虛擬隊列入隊操作包括計算虛擬隊列的當前深度與虛擬隊列的入隊數據才艮文所佔用的帶寬的和,將虛擬隊列的當前深度調整為所述和,並根據所述虛擬隊列的入隊數據報文所佔用的帶寬調整入隊方向對應的指針;且所述虛擬隊列出隊操作包括計算所述虛擬隊列的當前深度與所述虛擬隊列的出隊數據報文所佔用的帶寬的差;將虛擬隊列的當前深度調整為所述的差值,並根據所述虛擬隊列的出隊數據報文所佔用的帶寬調整出隊方向對應的指針。6、如權利要求3-5任一所述的方法,其特徵在於,所述數據報文所佔用的帶寬包括數據報文的長度和數據報文的附加開銷。7、如權利要求1至6中任一權利要求所述的方法,其特徵在於,針對所述虛擬隊列生成隊列報告,並上報所述隊列報告包括針對所述虛擬隊列生成隊列報告後立即上報,且上報所述隊列報告的時機為在當前帶寬授權結束前,發送最後一個數據報文之後。8、一種隊列報告裝置,其特徵在於,所述裝置中有實體隊列,所述實體隊列對應有至少一個閾值,一個所述閾值對應一個虛擬隊列,所述閾值表示所述虛擬隊列最大深度,所述裝置包括第一判斷單元,用於判斷是否有數據報文向光纖發送;虛擬隊列出隊管理單元,當所述報文發送判斷單元判斷出數據報文向光纖發送時,根據所述閾值對所述虛擬隊列執行出隊操作;第二判斷單元,用於判斷所述實體隊列是否有數據:^艮文入隊或者所述虛擬隊列是否執行了出隊操作;虛擬隊列入隊判斷單元,用於判斷是否允許所述虛擬隊列執行入隊操作;虛擬隊列入隊#:作單元,用於才艮據所述第二判斷單元確定出所述實體隊列有數據報文入隊或者所述虛擬隊列執行了出隊操作,且根據所述虛擬隊列入隊判斷單元判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;報告單元,用於針對所述虛擬隊列生成隊列報告,並上報所述隊列報告。9、如權利要求8所述的隊列報告裝置,其特徵在於,還包括資源回收單元,用於在判斷出數據報文向光纖發送時,對所述數據報文所在的所述實體隊列進行資源回收。10、如權利要求8所述的隊列報告裝置,其特徵在於,所述虛擬隊列入隊判斷單元判斷是否允許所述虛擬隊列執行入隊操作包括判斷所述實體隊列入隊的數據報文所佔用的帶寬與第一虛擬隊列當前深度之和是否超過所述第一虛擬隊列的閥值,如果不超過所述第一虛擬隊列的閾值,則允許所述第一虛擬隊列執行入隊才喿作;否則,不執行入隊操作;所述第一虛擬隊列為所述虛擬隊列的其中一個;所述虛擬隊列入隊判斷單元還用於當判斷所述第一虛擬隊列不執行入隊操作,且存在多個所述閾值時,判斷所述實體隊列入隊的數據報文所佔用的帶寬與第二虛擬隊列當前深度之和是否超過第二虛擬隊列的閥值,如果不超過,則允許所述第二虛擬隊列執行入隊操作;否則,繼續判斷,直至找到允許入隊的虛擬隊列。11、如權利要求8所述隊列報告裝置,其特徵在於,所述入隊操作單元執行入糹喿作包括計算虛擬隊列的當前深度與虛擬隊列的入隊數據報文所佔用的帶寬的和,將虛擬隊列的當前深度調整為所述和,並根據所述虛擬隊列的入隊數據報文所佔用的帶寬調整入隊方向對應的指針;所述隊列報告裝置還包括出隊操作單元,用於計算所述虛擬隊列的當前深度與所述虛擬隊列的出隊數據報文所佔用的帶寬的差;將虛擬隊列的當前深度調整為所述的差值,並根據所述虛擬隊列的出隊數據報文所佔用的帶寬調整出隊方向對應的指針。12、如權利要求8所述的隊列報告裝置,其特徵在於,所述報告單元上4艮所述隊列報告的時機為在當前帶寬授權結束前,發送最後一個數據^^艮文之後。13、一種無源光網絡系統,其特徵在於,包括終端設備,所述設備包括光網絡終端,或者光網絡單元;局端設備,所述局端設備包括光線路終端;所述終端設備對應有至少一個閥值,一個所述閾值對應一個虛擬隊列,所述閥值表示所述虛擬隊列最大深度;所述終端設備在判斷出數據報文向光纖發送時,才艮據所述閥值對所述虛擬隊列執行出隊操作;所述終端設備在確定出實體隊列有數據報文入隊或者所述虛擬隊列執行了出隊操作,且判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;針對所述虛擬隊列生成隊列報告,並上報所述隊列報告給所述局端設備;所述局端設備接收所述隊列報告,並根據所述隊列報告給所述終端設備分配合適的帶寬授權。14、如權利要求13所述的系統,其特徵在於,所述局端設備還用於在判斷出數據報文向光纖發送時,對所述數據報文所在的實體隊列進行資源回收;判斷所述實體隊列入隊的數據報文所佔用的帶寬與第一虛擬隊列當前深度之和是否超過所述第一虛擬隊列的閥值,如果不超過所述第一虛擬隊列的閾值,則允許所述第一虛擬隊列執行入隊操作;否則,不執行入隊操作;所述第一虛擬隊列為所述虛擬隊列的其中一個;當不執行入隊操作,且存在多個所述闊值時,判斷所述實體隊列入隊的數據報文所佔用的帶寬與第二虛擬隊列當前深度之和是否超過第二虛擬隊列的閥值,如果不超過,則允許所述第二虛擬隊列執行入隊^操作;否則,繼續判斷,直至找到允許入隊的虛擬隊列;所述第二虛擬隊列為所述虛擬隊列的其中一個。15、如權利要求13所述的系統,其特徵在於,所述終端i殳備執行入隊才喿作包括計算虛擬隊列的當前深度與虛擬隊列的入隊數據報文所佔用的帶寬的和,將虛擬隊列的當前深度調整為所述和,並根據所述虛擬隊列的入隊數據報文所佔用的帶寬調整入隊方向對應的指針;所述設備執行出隊操作包括將虛擬隊列的當前深度調整為所述的差值,並根據所述虛擬隊列的出隊數據報文所佔用的帶寬調整出隊方向對應的指針。全文摘要本發明公開了一種隊列報告方法、裝置和無源光網絡系統。其中的隊列報告方法包括針對實體隊列對應設置有至少一個閾值,一個所述閾值對應一個虛擬隊列,所述閾值表示所述虛擬隊列最大深度,所述方法包括如下步驟在判斷出數據報文向光纖發送時,根據所述閾值對所述虛擬隊列執行出隊操作;在確定出實體隊列有數據報文入隊或者執行所述虛擬隊列執行了出隊操作時,且判斷出允許所述虛擬隊列執行入隊操作時,根據所述閾值對所述虛擬隊列執行入隊操作;針對所述虛擬隊列生成隊列報告,並上報所述隊列報告。上述技術方案提高了隊列報告的準確度,得到局端能根據上報的隊列報告分配合適的帶寬,儘可能地避免了上行帶寬浪費,且邏輯實現簡單。文檔編號H04L12/56GK101534254SQ20091013099公開日2009年9月16日申請日期2009年4月21日優先權日2009年4月21日發明者宋奇剛,李中華,泳遊,聶世瑋,董恩升,譚亞中,黃久松申請人:華為技術有限公司