SE531947C2 - Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk - Google Patents

Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk

Info

Publication number
SE531947C2
SE531947C2 SE0602336A SE0602336A SE531947C2 SE 531947 C2 SE531947 C2 SE 531947C2 SE 0602336 A SE0602336 A SE 0602336A SE 0602336 A SE0602336 A SE 0602336A SE 531947 C2 SE531947 C2 SE 531947C2
Authority
SE
Sweden
Prior art keywords
data
list
dimension
classification
data traffic
Prior art date
Application number
SE0602336A
Other languages
English (en)
Other versions
SE0602336L (sv
Inventor
Mikael SUNDSTROEM
Original Assignee
Oricane Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oricane Ab filed Critical Oricane Ab
Priority to SE0602336A priority Critical patent/SE531947C2/sv
Priority to SE0700378A priority patent/SE531989C2/sv
Priority to SE0700691A priority patent/SE531954C2/sv
Priority to PCT/SE2007/050816 priority patent/WO2008054323A2/en
Priority to EP07835400A priority patent/EP2078393A4/en
Priority to US12/446,595 priority patent/US8477773B2/en
Publication of SE0602336L publication Critical patent/SE0602336L/sv
Publication of SE531947C2 publication Critical patent/SE531947C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/825Involving tunnels, e.g. MPLS

Description

25 30 531 Bil? rande intervallet i regeln. Med andra ord mäste värdena som innehålls i alla huvudfält hos paketet matcha sitt motsvarande intervall i regeln.
Enligt en första utföringsform av föreliggande uppfinning tillhandahålls denna genom ett förfarande för att utföra specifika datavidarebefordringsätgärder som beror på karaktären på datatrafik innefattande datapaket. Förfarandet innefattar stegen att: - ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en spe- cifik klass bland ett antal fördefinierade klasser, steg 201 - klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombe- sörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressområde hos ett datapaket, steg 202, och välja en första matchande klass från en ordnad lista med klasser, steg 203 genom att -analysera listan och framställa en crunchad eller komprimerad enfältsklassificerare per huvudfält, det vill säga dimension, steg 204 -cruncha eller komprlmera det adressområde på vilket klassificeraren opererar, -utföra klassificeringen iflera dimensioner.
Enligt en annan utföringsform organiseras uppsättningen av enfältsklassificerare såsom en vektor där crunchning eller komprimering exekveras i varje dimension samtidigt, steg 204.
Enligt en annan utföringsform analyseras listan med klasser i varje dimension för att identifiera potentiella startpunkter som tillhandahåller uppsättningen Z, där Z = (20. z1,...,zm} , där zj < zj+1 är uppsättningen av mindre slutpunkter av alla möjliga intervall [z0, z1 - 1] , [z1, z2 - 1] , . . _ , (zm, maxU], steg 205.
Enligt en annan utföringsforrn representeras varje sådan uppsättning av potentiella startpunkter i en enfältsklassificerare, i vilken resultatet av en look up tillhandahålls genom antalet av de förekommande intervallen, steg 206.
Enligt en annan utföringsform reproduceras intervallet till ett motsvarande komprimerat intervall genom att använda nämnda enfältsklassificerare som är tillhandahàllen för just denna dimension. 10 15 20 25 30 534 9-11? “Ä Enligt en annan utföringsform utförs nämnd look up med hjälp av att i det första steget, steg 201, eller parallellt om implementerad såsom hårdvara, göra look up med hjälp av motsvarande enfältsklassificerare för varje huvudfält hos paketet, och i det andra steget, steg 202. utförs flerdimensionell klassificering, med hjälp av TCAM om implementerad i hårdvara, av den avbildade listan med huvudfält i den komprimerade listan med regler.
Enligt en annan utföringsform organiseras varje crunchningsmodul såsom en vektor av crunchrar för varje typ av huvudfält.
Enligt en annan utföringsforrn exekveras crunchning i varje dimension samtidigt, steg 204.
Enligt en annan utföringsform exekveras crunchning i varje dimension sekventiellt, steg 204.
Enligt en ytterligare aspekt av föreliggande uppfinning tillhandahålls denna genom en anordning av det slag som definieras i introduktionsdelen av beskrivningen och som har de karakteriserande särdragen enligt krav 10. Klassificeraranordningen för att utföra spe- cifika datavidarebefordringsåtgärder som beror på karaktären på datatrafik innefattande datapaket innefattar: ett lagringsorgan 102 för att lagra en för vidarebefordring av datagram tillhandahållen datastruktur för att indikera vart i ett nätverk ett datagram ska vidarebefordras, vilken datastruktur har fonnen av ett träd som innefattar åtminstone ett löv och eventuellt ett antal noder inkluderande partiella noder, varvid nämnda datastruktur har en höjd som svarar mot ett antal minnesätkomster som krävs för att göra look up av ett största lagrat icke-negativt heltal som är mindre än eller lika med en fràgenyckel, medel 109 som är arrangerat för att ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klasser, och medel 110 som är arrangerat för att klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressområde hos ett datapaket, och välja en första 10 15 20 25 30 5131 Elit? 'd matchande klass från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering enligt förfarandet.
Enligt ännu en ytterligare aspekt av föreliggande uppfinning tillhandahålls denna genom ett system.
Enligt en fjärde aspekt av föreliggande uppfinning tillhandahålls en datorprogramspro- dukt som har datorprogramkodsmedel för att förmå en dator att exekvera förfarandet enligt ovan när programmet körs på en dator.
Det uppfattas att datorprogramprodukten är anpassad för att utföra utföringsformer som hänför sig till det ovan beskrivna förfarandet, såsom är tydligt från den bifogade uppsätt- ningen av osjälvständiga systempatentkrav.
Ytterligare särdrag hos och fördelar med föreliggande uppfinning beskrivs av de bilagda osjälvständiga patentkraven.
Kort beskrivning av ritningarna För att ytterligare förklara uppfinningen kommer nu utföringsformer som valts såsom exempel att beskrivas närmare med hänvisning till ritningarna, av vilka: Fig 1 är ett flödesschema som visar förfarandet enligt en utföringsforrn av föreliggande uppfinning; Fig 2 illustrerar ett schematiskt blockdiagram av en (hårdvaru~) anordning enligt en utfö- ringsform av föreliggande uppfinning; Fig 3 illustrerar ett schematiskt blockdiagram av en mjukvarulösning enligt en utförings- form av föreliggande uppfinning; Fig 4 illustrerar en översikt av en flerfältsklassifioerare som är baserad på cruncher- matchmakerarkitekturen; Fig 5 illustrerar en källadresscruncher; Fig 6 illustrerar en implementering enligt Fig 5; Fig 7 illustrerar hur man stöder lPv4/|Pv6-tunnling; och Fig 8 illustrerar TCAM-liknande minnesimplementering. 10 15 20 25 30 534 sa? Fí Beskrivning av utföringsformer av uppfinningen lnnan en detaljerad behandling av utföringsformer av uppfinningen ges, ska den all- männa bakgrunden till föreliggande uppfinning relaterad till en första del av föreliggande uppfinning diskuteras i närmare detalj för att underlätta förståelsen av principerna för uppfinningen, följt av en detaljerad beskrivning av en första del av en utföringsform av föreliggande uppfinning. Därefter ska en andra del diskuteras i närmare detalj, följt av en detaljerad beskrivning av en andra del av samma utföringsform som diskuterades innan.
D-dimensionell paketklassificering, eller helt enkelt paketklassificering, innebär att från en lista med regler eller klasser välja den första regeln som matchar ett paket. Varje regel består av D intervall som svarar mot D huvudfälti paketet. Låt Ri vara den izte regeln och [xij, yij] det jzte intervallet av regel Ri. Observera att för adresser så repre- senteras intervall ibland av prefix och för protokoll av enkla punkter.
Ett paket med huvudfält h1, h2, . . . , hD matchar regel Ri om och endast om xij s hj s yij förallaj = 1, 2, . . . , D.
I typiska fall flnns det tvà dominerande tillvägagångssätt för paketklassificerlng: "Ternary CAMs" som är en hårdvarulösning som bygger pà ràstyrka, och algoritmiska lösningar som använder heurístik för att utnyttja strukturen hos verkliga regellistor.
De flesta existerande schemana kommer att påverkas på ett eller annat sätt genom ersättning av 32-bitars lPv4-intervall med 128-bitars lPv6-intervall i alla regter.
Regler som består av två adresser och två portar kommer att ungefär växa från 2 -32+2 -16 = 96 bitar till 2-128+2-16 = 288 bitar om intervallen representeras av prefix eller från 4 -32+4 -16 = 192 till 4 -128+4 -16 = 576 bitar om intervallen representeras såsom god- tyckliga värdemängder. För en hårdvarulösning översätts detta direkt till ökat kortut- rymme och strömförbrukning för ett .fixt antal regler.
Såvitt vi vet finns det inga benchmarks för algoritmiska lösningar och lPvö-baserade regler och det är därför svårt att uttala sig säkert om förluster som en lPvß-övergång leder till. För en jämförelsebaserad paketklassificerare kommer noder att innehålla 128- bitarsvärden istället för 32-bitarsvärden och detta kommer uppenbarligen att öka storle- 10 15 20 25 30 531 94? l» ken på noderna. Det kommer även att ha avsevärd effekt på look up-hastigheten om noderna är noggrant dimensionerade och injusterade för att utnyttja minnesblockstorle- ken b sàsom vi gör med blockträd. För trie-baserade klassificerare kommer antalet nivåer att högst troligt öka, vilket leder till reducerad look up-prestanda, eller växa avse- värt i storlek.
Uppenbarligen skulle det vara önskvärt om vi kunde reducera inverkan från större adresser på den D-dimensionella klassificeraren. Detta ombesörjs med hjälp av förelig- gande uppfinning, av vilken en utföringsforrn nu kommer att beskrivas. Dock är uppfin- ningen inte begränsad till komprimering av lPvfi-adresser utan kan även användas för att komprimera lPv4-adresser för att reducera komplexiteten av klassificeringen och öka prestandan.
Utföringsformer av föreliggande uppfinning kommer nu att beskrivas med hänvisning till Fig 1 och 2 (och Fig 3), av vilka Fig 1 illustrerar stegen i förfarandet och Fig 1 illustrerar en anordning enligt en utföringsform av uppfinningen konfigurerad i hårdvara.
Fig 1 illustrerar ett förfarande för att utföra specifika datavidarebefordringsåtgärder som beror på karaktären på datatrafik innefattande datapaket. l ett första steg, steg 201, tas inkommande datatrafik av en specifik karaktär emot. Datatrafiken tillhör åtminstone en specifik klass bland ett antal fördefinierade klasser. lett andra steg, steg 202. klassifice- ras datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressområde hos ett datapaket och en första matchande klass väljs fràn en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering i ett tredje steg, steg 203.
Vidare utförs stegen att: -analysera listan och framställa en crunchad eller komprimerad enfältsklassificerare per huvudfält, det vill säga dimension, steg 204 -cruncha eller komprimera det adressområde på vilket klassificeraren opererar, -utföra klassificeringen i flera dimensioner.
Alla dessa steg i förfarandet som är relaterade till olika utföringsformer av föreliggande uppfinning kommer att beskrivas än ytterligare nedan, men först hänvisas till Fig 2, vilken är en illustration av ett blockschema av en klassificeraranordning 100 för att utföra förfa- 10 15 20 25 30 53'| 911? randet, enligt en utföringsform av föreliggande uppfinning. Klassificeraranordningen 100 är implementerad i hårdvara och skulle kunna refereras till såsom en flerdimensionell klassificerare.
Den hårdvaruimplementerade klassificeraranordningen 100 innefattar en in-utenhet 104 för överföring av datasignaler som innefattar datagram till eller från en källa eller desti- nation så som en router eller liknande (ej visad). Denna in-utenhet 104 skulle kunna vara av godtycklig konventionell typ som inkluderar en trådlös nätbryggalväxel som har in- utelement för att ta emot och sända video, audio och datasignaler. Datainmatning illu- streras schematiskt såsom “förfràgan" om ett eller flera datahuvudfält, och datautmatning såsom ett resultat så som vidarebefordringsriktning, policy som ska gälla eller liknande.
Tillhandahàllen finns en för att kommunicera med denna in-utenhet 104 arrangerad systembuss 106 som är ansluten till ett styrsystem 108 som exempelvis inkluderar ett specialanpassat klassificeringsacceleratorchip som är arrangerat för att behandla data- signalerna.
Anordningen 100 innefattar medel 109 för att ta emot inkommande datatrafik av en spe- cifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klas- ser, och medel 110 för att klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera vården på ett eller flera valda huvudfält i ett adressområde hos ett datapaket, och välja en första matchande klass från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering.
Den flerdimensionella klassificeringen ombesörjs med hjälp av en teknik för crunchning eller komprimering av det adressområde på vilket en klassificerare opererar som tillhan- dahàller flerdimensionell klassificering. l typiska fall tillhandahåller, eller inkluderar, chippet 108 medel 109, 110 för att analysera en regeluppsättning för att framställa en uppställning av enfältsklassificerare, bestående av upp till en enfältsklassificerare för varje dimension, att konvertera den ursprungliga regeluppsättningen till en motsvarande lista med komprimerade regler genom att använda uppställningen av enfältsklassificerare, att ladda in uppställningen av enfälts- klassificerarrepresentationer i en motsvarande uppställning av enfältsklassificerare som är implementerad i specialanpassad hårdvara på ett chip för att accelerera genomström- 10 15 20 25 30 531 H4? ning, att ladda in listan med komprimerade regler i ett speciellt sorts TCAM-liknande minne där varje cell svarar mot en regel och varje cell lagrar gränserna (minimum och maximum) för ett intervall i varje dimension varvid själva klassificeringen av en lista med huvudfält àstadkoms genom att först komprimera värdet på varje huvudfält parallellt med användning av uppställningen av enfältsklassificerare för att producera en komprimerad lista med huvudfält som sedan klassificeras genom att laddningsmatcha den mot alla TCAM-liknande celler parallellt och välja den första TCAM-liknande cellen som matchar med användning av standard-TCAM-tekniker för uppknytning bland flerfaldiga match- ningar, för att producera det slutliga resultatet, och tekniker för att integrera adressomrà- deskomprimeringen och den komprimerade flerfältsklassificeringen på anordningen (chippet) så att inmatningen till anordningen är listan med ursprungliga huvudfält och utmatningen från anordningen är indexet för den regel som matchar huvudfälten. l typiska fall skulle chippet 108 kunna vara konfigurerat såsom innefattande klassificerar- look up-struktur och klassificerar-look up, i typiska fall inbyggda. i en alternativ utföringsform av föreliggande uppfinning, vilken illustreras i Fig 3, är anordningen 100 implementerad i mjukvara istället. För att underlätta förståelsen kom- mer samma hänvisningssiffror som redan har använts i samband med Fig 2 att använ- das så långt som möjligt. l typiska fall innefattar styrsystemet 108 en processor 111 som är ansluten till ett snabbt datorminne 112 med en systembuss 106, i vilket minne 112 finns datorexekverbara instruktioner 116 för exekvering; varvid processom 111 är operativ för att exekvera de datorexekverbara instruktionerna 1 16 för att: tillhandahålla i ett lagringsorgan 102, häri i typiska fall primärminnet, en för vidarebeford- ring av datagram tillhandahállen datastruktur för att indikera vart i nämnda nätverk ett datagram ska vidarebefordras, och arrangerad för att - ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en spe- cifik klass bland ett antal fördefinierade klasser, steg 201 - klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombe- sörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressomräde hos ett datapaket, steg 202, och välja en första matchande klass från en ordnad lista med klasser, steg 203 10 15 20 25 30 55"! Elli? fi genom att -analysera listan och framställa en crunchad eller komprimerad enfältsklassificerare per huvudfält, det vill säga dimension, steg 204 -crunoha eller komprimera det adressområde pà vilket klassificeraren opererar, -utföra klassificeringen i flera dimensioner.
Nu hänvisas tillbaka till Fig 1.
Enligt en annan utföringsform organiseras uppsättningen av enfältsklassificerare såsom en vektor där crunchning eller komprimering exekveras i varje dimension samtidigt, steg 204.
Enligt en annan utföringsform analyseras listan med klasser i varje dimension för att identifiera potentiella startpunkter som tillhandahåller uppsättningen Z, där Z = (20, z1,...,zm} , där zj < zj+1 är uppsättningen av mindre slutpunkter av alla möjliga intervall [z0, z1 - 11, [z1,z2 - 1] , . . . , [zm, maxüj, steg 205.
Enligt en annan utföringsfomi representeras varje sådan uppsättning av potentiella startpunkter i en enfältsklassificerare, i vilken resultatet av en look up tillhandahålls genom antalet av de förekommande intervallen, steg 206.
Enligt en annan utföringsform reproduceras intervallet till ett motsvarande komprimerat intervall genom att använda nämnda enfältsklassificerare som är tillhandahållen förjust denna dimension.
Enligt en annan utföringsform utförs nämnd look up med hjälp av att i det första steget, steg 201, eller parallellt om implementerad såsom hårdvara, göra look up med hjälp av motsvarande enfältsklassificerare för varje huvudfält hos paketet, och i det andra steget, steg 202, utförs flerdlmensionell klassificering, med hjälp av TCAM om implementerad i hårdvara, av den avbildade listan med huvudfält i den komprimerade listan med regler.
Enligt en annan utföringsform organiseras varje crunchningsmodul såsom en vektor av crunchrar för varje typ av huvudfält. 10 15 20 25 30 531 34? 'rm i t; Enligt en annan utföringsform exekveras crunchning i varje dimension samtidigt, steg 204.
Enligt en annan utföringsforrn exekveras crunchning i varje dimension sekventiellt, steg 204.
Enligt en utföringsform av föreliggande uppfinning utförs nämnda look up med hjälp av att i ett första steg 201 (eller parallellt om implementerad såsom hårdvara) göra look up med hjälp av motsvarande enfältsklassificerare för varje huvudfält hos paketet. På detta vis tillhandahålls en lista med avbildade värden på huvudfälten. l ett andra steg utförs flerdimensionell klassificering (med hjälp av TCAM om implemen- terad i hårdvara) av den avbildade listan med huvudfält iden komprimerade listan med regler.
Analysen av den ursprungliga listan med regler och komprimeringen av listan med reg- ler, liksom definitionen av varje enfältsklassificerare ombesörjs med hjälp av mjukvara.
Nämnda look up skulle kunna skapas med hjälp av hårdvara, exempelvis med hjälp av pipelining för förbättrad prestanda. Om nämnda look up ombesörjs med hjälp av mjuk- vara är det möjligt att använda godtycklig typ av befintlig tlerdimensionell klassificerare för att tillhandahålla matchning av den komprimerade listan.
Sålunda inkluderar uppfinningen analys av ursprunglig lista med regler, definitionen av SFC för varje dimension, liksom komprimering av listan med regler.
Enligt en alternativ utföringsforrn av föreliggande uppfinning tillhandahålls ett system enligt krav 12, i vilket två flerdimensionella klassificerare används där den ena är speci- alanpassad för fundamentala lPv4-regler och den andra för fundamentala lPv6-regler.
Vi kommer nu att visa hur man använder enfältsklassificering för att komprimera adress- området för varje dimension till min(2n+1, 2^wi), där wi är antalet bitar i det ursprungliga huvudfältet i dimension i. Genom att använda denna teknik reduceras det totala antalet bitar som är involverade i den faktiska D-dimensionella klassificeringen från 10 15 20 25 30 531 B11? 'll w1+w2+...+wD till min(ceiI(lg(2n + 1), w1)+ min(ceil(lg(2n + 1), w2)+...+ min(ceil(|g(2n + 1), WD).
Betrakta en dimension åt gången och lät [xi, yi] vara intervallet i den aktuella dimensio- nen i regel Ri. Konstruera ett uppsättningspar X = {x1, x2,...,xn} union {0} och Y = {y1 + 1, y2 +1,...,yn + 1} snitt U, där U är populationen (t ex {0, 1, _ . . _ , 2^128 - 1} för lPv6) och låt Z = X union Y.
Uppsättningen Z = {z0, z1,...,zm} , där zj < zj+1 är uppsättningen av mindre slutpunkter av alla möjliga intervall [z0, z1 - 1] , [z1, z2 - 1] , . . . , [zm, maxU], och uppsättningen av dessa intervall är en partition av U.
Definiera avbildningen i enligt följande: §(x)=j,omzjSxszj+1-1.
Uppenbarligen är § en avbildning från U på {0, . . . , m} . Dessutom ärm s 2n eftersom högst en slutpunkt från varje regel adderades til! X respektive Y. Det är okomplicerat att implementera § genom att använda en enfältsklassificerare. l synnerhet kan något av förfaranden i kraven 1-4 användas. Eftersom fiär en monotont ökande funktion flnns dessutom inget behov av att explicit lagra de faktiska databitarna som utgör resultatet från enfältsklassificeraren. istället kan resultatet från nämnda look up beräknas genom att spåra nämnda look up.
För varje regel Ri vill vi avbilda intervallet [xi, yi] i den aktuella dimensionen till ett mot- svarande intervall [x0i, y0i] = š ([xi, yi]) i regel R'i. Detta ástadkoms enligt följande: 10 15 20 25 30 531 94? štlx, vi) = lštxxml. Om y = maXU och [f,(x), § (y+1)-1] annars.
Genom att utföra dessa steg för varje regel i varje dimension erhåller vi en ny regellista R', vilken är en avbild §(R) av den ursprungliga regellistan R under den flerdimensionella avbildningen §=[§1, §2, . . . , §D] , där ši är avbildningen i dimension i.
Det återstår att visa att den första matchande regeln bevaras när adressomràdet kom- primeras. För en lista med huvudfält definierar vi §([h1, h2, . . . , hD]) = [§1(h1), §2(h1), . . . .§D(hD)].
Om h ligger i [x,y] är ekvivalent med i (h) ligger i §([x, y]), så matchar [h1, h2, . . . , hD] Ri om och endast om §([h1, h2, . . . , hD]) matchar §(Ri) , och vi kan vara säkra att den för- sta matchande regeln bevaras av avbildningen.
Följaktligen mäste vi bevisa att h ligger i [x,y] är ekvivalent med i (h) ligger i §([x, y]). För den nedre gränsen har vi h a x implicerar att h 2 zj , där zj = x, och följaktligen § (h) 2 j, och för den övre gränsen implicerar h s y att h < zj' , där zj' = y + 1 som implicerar att § (h) s j' - 1. Genom definitionen av šför intervall har vi att §([x, y])=[j,j'-1j och följaktligen ligger f,(h) i §([x. y]).
Den ursprungliga idén var att använda adressomrâdeskomprimeringsschemat för att avbilda lPvö-adresser på lPv4-adresser. Såvida inte 2n+1 > 2^32, vilket vi betraktar 10 15 20 25 30 Eífl 347 lb såsom osannolikt eftersom det skulle motsvara att ha fler än 2 147 483 647 regler, kan vår målsättning enkelt uppnås. För måttligare regellistor, säg en miljon regler, kan vi dock komprimera varje lPvö-adress pà ett 21-bitars heltal istället för att använda 128 bitar, vilket är en reduktion av 83 %. Fastän detta inte reducerar den kombinatoriska komplexiteten av paketklassificeringsproblemet såsom sådant, tror vi att det kommer att göra saker avsevärt lättare för de flesta mjukvarubaserade D-dimensionella paketklassi- ficerarna, i synnerhet för dem som är konstruerade för att hantera adresser såsom inter- vall.
För D-dimensionella klassificerare som i hög grad utnyttjar (eller snarare missbrukar) den allmänna inskränkningen att uttrycka adressintervall såsom prefix i regellistor, måste en något annorlunda avbildning användas. Srinivasan m fl beaktade problemet att leta bland prefixlängder efter portintervall i V. Srinivasan, Subhash Surf, och George Varg- hese. Packet classification using tuple space search. ISIGCOMM, sidorna 135-146, 1999. De introducerade begreppet kapslingsnivåer som svarar mot prefixlängd och defi- nieras såsom antalet nivåer i en hierarki av intervall där varje intervall är en delmängd av moderintervallet. Vi kan föra detta vidare genom att avbilda godtyckliga intervall till prefix där varje kapslingsnivá lägger högst två ytterligare bitar till prefixlängden. Det är okom- plicerat att generera en sådan avbildning och för de flesta riktiga tillämpningarna kan vi förvänta oss att antalet kapslingsnivàer är färre än 16 och sålunda kan alla lPv6 prefix avbildas på lPv4-prefix.
Vid betraktande av tillämpningar med extrema prestandakrav, så som core backbone- routrar, utförs klassiflcering i typiska fall med användning av ett TCAM-chip med hög prestanda. För lPv6 5-fälts flerdimensionell klassificering (MFC-S) krävs 296-bitars TCAM-celler. TCAM-bitar är extremt dyra, både vad gäller implementeringskostnad och strömförbrukning.
Kostnaden för en bit SRAM-minne såsom används för att lagra våra 1-dimensionella hybridklassificerare är liten jämfört med kostnaden av en TCAM-bit. Vi kan därför använda två parallella 128-bitars klassificerare för att utföra samtidig adressområdes- komprimering av käll- och destinationsadresserna för att erhålla en reduktion från på 128 bitar till 17 bitar såsom visas i Fig 6. De resulterande 5-fälts, totalt 74 bitar, kan sedan klassificeras med användning av ett TCAM-liknande minne som är konstruerat för att 10 15 20 25 30 531 94? IA (_ 1 r matcha intervall istället för godtyckliga jokrar. Eftersom kostnaden per bit i ett sådant TCAM-liknande minne inte bör vara väsentligt högre än i ett vanligt TCAM, kan den effektiva reduktionen av kiselarea och strömförbrukning potentiellt vara så hög som 75 %.
Vektorproduktberäkning är en allmänt använd metod för att kombinera 1-dimensionella klassificerare för att bilda en D-dimensionell klassificerare (se V. Srinivasan och George Varghese. Faster IP lookups using controlled prefix expansion. I Proceedings of the 1998 ACM SIGMETRICS joint intemational conference on Measurement and modeling of computer systems, sidorna 1-10. ACM Press, 1998). ldén är något liknande vårt adresskomprimeringsschema som beskrivits ovan men det finns ett antal viktiga skillna- der som vi nu kommer att diskutera. Vi börjar med en lista med n regler där varje regel definierar ett D-dimensionellt intervall. Vid användning av vektorproduktberäkning, används en uppsättning av D t-dimensionella klassificerare för att avbilda D huvudfält på en punkt i den D-dimensionella populationen Ucross ={0. 1, . . . ,n - 1}D . Dock är den avbildning som används vid vektorproduktberäkning extremt tät. Därför är den enda möjliga representationen av den ursprungliga regellistan i Ucross en representation utan bindningar. Detta tvingar vektorproduktberäkningen att avbilda den ursprungliga regel- listan på en representation där varje (avbildad) punkt endast kan matcha en enda avbil- dad regel. Till följd av detta kräver den avbildade representationen av regellistan n^D- Iagringsorgan, i värsta fall, vid användning av vektorproduktberäkning. I vårt schema är populationen Uhybrid = {0, 1, . . . , 2n}^D något större. Till följd av detta kan vi avbilda varje ursprunglig regellista på en motsvarande avbildad regellista där kriterierna för upp- knytning av flerfaldiga matchningar bevaras. Den resulterande avbildade regellista består av samma antal regler som den ursprungliga regellistan. l ett grundscenario svarar varje dimension mot en viss sorts huvudfält som vi refererar till såsom typen av huvudfältet. I en fundamental lPv4 MFC-S-regel är typerna av de första och andra dimensionerna lPv4-käll- respektive -destinationsadress medan typerna av de tredje och fjärde dimensionerna är källadress respektive destinationsadress.
I typiska fall antas det att protokollet, vitket svarar mot den femte dimensionen, är antingen TCP eller UDP. Annars skulle specifikationen av portvärdemängder i den tredje 10 15 20 25 30 53'l S4? ik? och fjärde dimensionen sakna betydelse. I en fundamental lPv6 MFC-5-regel är adressintervallen lPv6-adresser istället för lPv4-adresser.
Ett problem med ett fundamentalt schema är hur man hanterar regellistor där funda- mentala lPv4- och fundamentala lPvö-regler blandas. Om den faktiska flerdimensionella klassificeringen utförs med användning av mjukvara (dvs datorprogramsprodukt som körs på en dator), blir användningen av en enda flerdimensionell klassificerare mycket trasslig eftersom två adressområden med olika storlekar behöver kombineras. Pro- grammet kommer att vara svårt och kostsamt att implementera, dyrt att hålla igång och högst troligt mycket ineffektivt. Såsom ett alternativt tillvägagångssätt kan två flerdimen- sionella klassificerare användas där den ena är specialanpassad för fundamentala lPv4- regler och den andra för fundamentala lPvß-regler. Även om detta tillvägagångssätt (eventuellt) kan vara möjligt om det endast finns två typer av regler, skalar det inte för att stödja den mångfald av typer av regler som krävs för att implementera kraftfulla och sofistikerade säkerhetspolicies i prestandakritiska nätverksmiljöer. Den första konkreta situationen när denna skalning blir ett problem är när vi vill stödja andra protokoll så som exempelvis ICMP (Internet Control Message Protocol) och ESP (Encapsulating Security Payload) som kan följa lP-huvudet. ICMP innehåller inte portnummer. istället finns det en 5-bitarstyp och en 4-bitarskod (ehuru båda representeras såsom 8-bitarsfält i ICMP- huvudet. Skalningsproblemen blir ännu värre när vi vill stödja regler för lP-tunnling där det kan finnas två eller fler lPv4/lPv6-huvuden framför transporthuvudet vilket sålunda ger en MFC-7-regel, MFC-9-regel etc. I en sådan situation kan typen av den tredje dimensionen vara en lPv4-källadress, en lPv6-källadress, en UDP-källport, en TCP-käll- port eller en ICMP-typ. Genom att tillåta ännu fler olika sorters transportprotokoll, stöds regler och/eller tunnlingsnivåerna, blir situationen ännu värre. l princip krävs en special- anpassad flerfältsklassificerare för varje möjlig kombination, vilket sålunda vållar känn- bara skalbarhetsproblem både i mjukvara och hårdvara. l en ytterligare utföringsform av föreliggande uppfinning kommer vi att först generalisera den tidigare beskrivna adresskomprimeringstekniken till ett generellt crunchningssteg som sedan kombineras med en generell matchmaker för att övervinna problemen med många möjliga kombinationer av regelstrukturer och tunnlingsnivàer såsom beskrivits ovan. Skälet till att använda termen crunchning istället för komprimering är att den effek- tiva storleken på en del fält kan öka till följd av processen, ehuru nyckelidén är att redu- 10 15 20 25 30 531 Elli? lø cera den effektiva storleken på huvudfälten före flerdimensionell klassificering. Nämnda matchmaking kan utföras antingen i hårdvara, med användning av ett TCAM-liknande minne som vi har beskrivit i korthet ovan och kommer att beskriva i närmare detalj i sammanhang av föreliggande utföringsforrn, elleri mjukvara med användning av god- tycklig standardteknik för flerdimensionell klassificering som inkluderar linjär sökning, vektorproduktberäkning, kvadrantträd etc.
I Fig 4 visar vi en översikt av en flerfältsklassificerare som är baserad på cruncher- matchmakerarkitekturen. l (a) kommer den ursprungliga listan med huvudfältsvärden in i crunchern där den omvandlas till typoberoende format (b) som sedan kommer in i matchmakern som producerar resultatet (c). I (d) och (e) visar vi underhållet av crun- chern och matchmakern där uppdateringar förs in för att ändra uppförandet av klassifice- raren.
Crunchern består av en uppställning av crunchningsmoduler. Potentiellt finns det en modul för varje dimension. Varje modul består av en uppställning av specialanpassade crunchrar med en specialanpassad cruncher för varje typ. Vi refererar till en specialan- passad cruncher som är konstruerad för att cruncha ett w-bitarsfält såsom w-bitarsfält- cruncher.
Crunchem innehåller en modul för varje dimension där crunchningsprocessen kan för- bättra klassificeringen såsom visas i Fig 5. l detta fall stödjer vi fundamentala lPv4- och lPv6-regler och det totala antalet regler är 2^16, vilket innebär att det inte är någon mening med att cruncha portar och protokoll. Crunchrarna sätts upp på samma sätt som adresskompressorerna bortsett från att indata kan bestå av olika typer av huvudfält.
Källadresscrunchern i Fig 5 är konflgurerad genom sortering av alla för lPv4-källor potentiella intervallstartpunkter för att erhålla en lista med högst 2 " N4 + i lPv4-intervail där intervall X avbildas till X. lPvö-crunchern är konflgurerad på ett liknande sätt bortsett från att intervall Y avbildas till Y + Xmax + 1 istället för till Y såsom skulle vara fallet om det endast fanns en lPvö-cruncher. Om det finns fler sorters fält att kombinera det första intervallet frän, avbildas nästa fält till värdet på avbildningen av det sista intervallet från den tidigare sortens fält plus ett. Detta kan upprepas för att stödja crunchning och sålunda kombination av ett godtyckligt antal olika sorters huvudfält i varje dimension. 10 15 20 25 30 531 84? Såsom en ytterligare utföringsfonn visar vi i Fig 6 hur detta förfarande tillämpas för att stödja IPv4/IPv6 MFC-5-regler med såväl TCP, UDP som ICMP. l ännu en annan utföringsfonn visar vi i Fig 7 hur man stöder lPv4/lPv6-tunnling förutom de regler som stöds av anordningen i Fig 6, vilket sålunda ger en lPv4/lPv6 MFC-Y-klas- sificerare med stöd för såväl TCP, UDP som ICMP. Observera att de första käll- och destinationsadresscrunchrarna även innehåller en skipper som används för att koda MFC-5-regler där det yttersta lPv4/|Pv6-huvudet inte matchas mot.
I en alternativ utföringsform skulle skippern kunna ha varit implementerad i de tredje och fjärde adresscruncherrnodulerna istället med huvudsakligen samma resultat om match- makern är implementerad i hårdvara (ej visad).
I ännu en ytterligare alternativ utföringsfonn skulle skippern kunna hoppas över helt genom att hantera transportprotokollfälten fràn MFC-5-regler i de tredje och fjärde crun- chermodulerna genom att kombinera källport och lCMP-typ i den tredje modulen och I destinationsport och ICMP-kod i den fjärde modulen (ej visad). l en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer kan matchmakern vara implementerad med användning av ett TCAM-liknande minne såsom visas i Fig 8. (a) och (b) visar frågenyckeln i typoberoende format (efter crunchning). l (c) visas översikten av matchmakern såsom en uppställning av celler och i (d) visas en ensam cell i närmare detalj. Varje cell består av ett register för varje dimension och i (e) visas i detalj matchningen av ett crunchal fält och cellregister som innehåller min- och maxvärden för det representerade intervallet. För att matcha måste alla dimensioner matcha. För att kombinera resultaten till ett enda värde som representerar den första matchande cellen används en prioritetskodare (f). l ännu en annan utföringsform skulle det kunna finnas en specialanpassad cruncher som utför bypass genom att mata ut samma värde som sin inmatning. Bypass används i en sådan utförlngsforrn om några crunchrar är implementerade i hårdvara i en anordning och några crunchrar är implementerade i en datorprogram som exekveras på en dator för att stödja anordningen genom att utföra viss lägre prioriterad crunchning i slow-path 531 511? iii och därefter skicka resultatet i form av en partiellt förcrunchad fràgenyckel till crunchern i hårdvaruanordningen.

Claims (14)

10 15 20 25 30 53'i Elli? Patentkrav 2009-04-17 (andra yrkande)
1. Förfarande för att utföra specifika datavidarebefordringsàtgärder som beror på karak- tären på datatrafik innefattande datapaket, vilket förfarande innefattar stegen att: -ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en spe- cifik klass bland ett antal fördefinierade klasser, (steg 201) - klassificera datatratiken genom att fastställa karaktären på datatrafiken, vilket ombe- sörjs av en process för att inspektera värden på ett eller flera valda huvudfälti ett adressområde hos ett datapaket, (steg 202), och välja en första matchande klass från en ordnad lista med klasser, (steg 203) genom att -analysera listan och framställa en crunchad eller komprimerad enfältsklassificerare per huvudfält, det vill säga dimension, (steg 204) -cruncha eller komprimera det adressområde på vilket klassificeraren opererar, -utföra klassificeringen i flera dimensioner.
2. Förfarande enligt krav 1, ivllket uppsättningen av enfältsklasslficerare organiseras såsom en vektor där crunchning eller komprimering exekveras i varje dimension samtidigt, (steg 204).
3. Förfarande enligt något av kraven 1-2, innefattande steget att analysera listan med klasser i varje dimension för att identifiera potentiella startpunkter som tillhandahåller uppsättningen Z, där Z = {z0, z1,...,zm} , där zj < zj+1 är uppsättningen av mindre slutpunkter av alla möjliga intervall [z0, 21 - 1] , [z1, z2 - 1] , . . _ , [zm, maxU], (steg 205)
4. Förfarande enligt krav 3, i vilket varje sådan uppsättning av potentiella startpunkter representeras i en enfältsklassificerare, i vilken resultatet av en look up tillhandahålls genom antalet av de förekommande intervallen, (steg 206).
5. Förfarande enligt krav 4, innefattande steget att reproducera intervallet till ett motsvarande komprimerat intervall genom att använda nämnda enfältsklassiflcerare som är tillhandahållen förjust denna dimension. 10 15 20 25 30 531 311?
6. Förfarande enligt något av kraven 4-5, i vilket nämnd look up utförs med hjälp av att i det första steget, (steg 201), eller parallellt om implementerad såsom hårdvara, göra look up med hjälp av motsvarande enfältsklassificerare för varje huvudfält hos paketet, och i det andra steget, (steg 202), utförs flerdimensionell klassificering, med hjälp av TCAM om implementerad i hårdvara, av den avbildade listan med huvudfält i den komprimerade listan med regler.
7. Förfarande enligt något av föregående krav 1-5. där varje crunchningsmodul organi- seras såsom en vektor av crunchrar för varje typ av huvudfält.
8. Förfarande enligt något av föregående krav 1-6, där crunchning exekveras i varje dimension samtidigt, (steg 204).
9. Förfarande enligt något av föregående krav 1-6, där crunchning exekveras i varje dimension sekventiellt, (steg 204).
10. Klassificeraranordning för att utföra specifika datavidarebefordringsåtgärder som beror på karaktären på datatrafik innefattande datapaket, vilken anordning (100) innefattar: ett lagringsorgan (102) för att lagra en för vidarebefordring av datagram tillhandahàllen datastruktur för att indikera vart i ett nätverk ett datagram ska vidarebefordras, vilken datastruktur har formen av ett träd som innefattar åtminstone ett löv och eventuellt ett antal noder inkluderande partiella noder, varvid nämnda datastruktur har en höjd som svarar mot ett antal minnesàtkomster som krävs för att göra look up av ett största lagrat icke-negativt heltal som är mindre än eller lika med en frågenyckel, medel (109) som är arrangerat för att ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klasser, och medel (110) som är arrangerat för att klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressomrâde hos ett datapaket, och välja en första 10 15 531 94? :Ät matchande klass från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering enligt krav 1.
11. Klassificeraranordning enligt krav 10, i vilken lagringsorganet är ett TCAM-minne.
12. System innefattande en eller flera klassificeraranordningar enligt krav 10, för att till- handahàlla klassificering av paket exempelvis i en brandvägg.
13. Datorprogramsprodukt som går att ladda in direkt i internminnet hos en digitaldator. kännetecknad därav att nämnda produkt innefattar mjukvarukodsmedel för att utföra steget enligt krav 1.
14. Datorprogramsprodukt innefattande ett datorläsbart medium, kännetecknad därav att på nämnda medium finns det lagrat datorprogramkodsmedel, när det är laddat i en dator, för att förmå datorn att utföra steget enligt krav 1.
SE0602336A 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk SE531947C2 (sv)

Priority Applications (6)

Application Number Priority Date Filing Date Title
SE0602336A SE531947C2 (sv) 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
SE0700378A SE531989C2 (sv) 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät
SE0700691A SE531954C2 (sv) 2006-11-03 2007-03-19 Förfarande och datorprogramsprodukt för flerfältsklassificering i ett datakommunikationsnät
PCT/SE2007/050816 WO2008054323A2 (en) 2006-11-03 2007-11-02 Multi field classification in data communications network
EP07835400A EP2078393A4 (en) 2006-11-03 2007-11-02 METHOD, DEVICE AND SYSTEM FOR MULTI-FIELD CLASSIFICATION IN A DATA COMMUNICATION NETWORK
US12/446,595 US8477773B2 (en) 2006-11-03 2007-11-02 Method, device and system for multi field classification in a data communications network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0602336A SE531947C2 (sv) 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk

Publications (2)

Publication Number Publication Date
SE0602336L SE0602336L (sv) 2008-05-04
SE531947C2 true SE531947C2 (sv) 2009-09-15

Family

ID=39456239

Family Applications (3)

Application Number Title Priority Date Filing Date
SE0602336A SE531947C2 (sv) 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
SE0700378A SE531989C2 (sv) 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät
SE0700691A SE531954C2 (sv) 2006-11-03 2007-03-19 Förfarande och datorprogramsprodukt för flerfältsklassificering i ett datakommunikationsnät

Family Applications After (2)

Application Number Title Priority Date Filing Date
SE0700378A SE531989C2 (sv) 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät
SE0700691A SE531954C2 (sv) 2006-11-03 2007-03-19 Förfarande och datorprogramsprodukt för flerfältsklassificering i ett datakommunikationsnät

Country Status (2)

Country Link
US (1) US8477773B2 (sv)
SE (3) SE531947C2 (sv)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100262684A1 (en) * 2007-11-16 2010-10-14 France Telecom Method and device for packet classification
US8472452B2 (en) 2011-08-02 2013-06-25 Cavium, Inc. Lookup cluster complex
US8719450B2 (en) 2011-10-31 2014-05-06 Cable Television Laboratories, Inc. Internet protocol (IP) address translation
US8681795B1 (en) * 2011-12-28 2014-03-25 Juniper Networks, Inc. Fixed latency priority classifier for network data
WO2013119173A2 (en) 2012-02-07 2013-08-15 Oricane Ab Classification engine for data packet classification
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US11360681B2 (en) * 2020-05-27 2022-06-14 Xiaoliang Zhao Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
US7043467B1 (en) 2000-02-08 2006-05-09 Mips Technologies, Inc. Wire-speed multi-dimensional packet classifier
US6970462B1 (en) * 2000-04-24 2005-11-29 Cisco Technology, Inc. Method for high speed packet classification
US7193997B2 (en) * 2001-03-19 2007-03-20 International Business Machines Corporation Packet classification
US20030030575A1 (en) * 2001-05-07 2003-02-13 Harmonic Data Systems Ltd. Lossless data compression
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
JP2003338830A (ja) * 2002-03-12 2003-11-28 Matsushita Electric Ind Co Ltd メディア送信方法、メディア受信方法、メディア送信装置及びメディア受信装置
US7668160B2 (en) * 2005-03-31 2010-02-23 Intel Corporation Methods for performing packet classification
US7596141B2 (en) * 2005-06-30 2009-09-29 Intel Corporation Packet classification using encoded addresses
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture

Also Published As

Publication number Publication date
US20100238922A1 (en) 2010-09-23
SE531954C2 (sv) 2009-09-15
SE0700691L (sv) 2008-05-04
SE0700378L (sv) 2008-05-04
SE0602336L (sv) 2008-05-04
SE531989C2 (sv) 2009-09-22
US8477773B2 (en) 2013-07-02

Similar Documents

Publication Publication Date Title
US10764181B2 (en) Pipelined evaluations for algorithmic forwarding route lookup
US8472446B2 (en) Method for data packet classification in a data communications network
US7961734B2 (en) Methods and apparatus related to packet classification associated with a multi-stage switch
US6778530B1 (en) Method and apparatus for multiple field matching in network device
US8599859B2 (en) Iterative parsing and classification
Meiners et al. Split: Optimizing space, power, and throughput for TCAM-based classification
US20100080224A1 (en) Methods and apparatus for packet classification based on policy vectors
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
US20030135691A1 (en) Input data selection for content addressable memory
SE531947C2 (sv) Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
Nikitakis et al. A memory-efficient FPGA-based classification engine
Yang et al. Fast OpenFlow table lookup with fast update
Erdem et al. Hierarchical hybrid search structure for high performance packet classification
Le et al. Memory-efficient ipv4/v6 lookup on fpgas using distance-bounded path compression
CN111163077A (zh) 一种基于网络处理器实现多维连续掩码的系统和方法
US8040882B2 (en) Efficient key sequencer
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
Jiang et al. Scalable packet classification: Cutting or merging?
Sun et al. Openflow accelerator: A decomposition-based hashing approach for flow processing
CN109150584B (zh) 一种基于simd指令的为网络分组分类提供加速支持的方法
Erdem et al. Compact trie forest: Scalable architecture for IP lookup on FPGAs
Antoš Hardware-constrained Packet Classification
Morikawa et al. Super-pipelined implementation of IP packet classification

Legal Events

Date Code Title Description
NUG Patent has lapsed