To proto, že každou hlavičku vymyslela jiná hlavička a nedrželi se jednotnýho formátu ani jednotnýho kuřiva.
U TLV by byla HW filtrace triviální,
1) Chytnu hlavičku do registrů.
2) Chytnu typ a délku do registrů.
3) Pokud je to známá hlavička, tak ji chytnu, validuju, parsuju a zpracuju. Pokračování bodem 2. Na cestě jich až tak moc potřeba nebude. Možná něco k MTU a routování.
4) Pokud neznám hlavičku, tak stanovenou délku ignoruju. Pokračování bodem 2.
5) Pokud typ = data, paket projde ke zpracování.
6) Pokud je konec paketu a nejsou jasný data (protokol), paket jde do /dev/null
Validace: délka v rozsahu minsize až maxsize pro daný typ, správný hodnoty ve výčtech,... Nesedí-> zahodit
Pokud je MAC + switch v FPGA, tak třeba u Actelu jsem měli už x let zpátky součást FPGA ARM jádro, Lattice má Micro32, Altera Nios... Takže inteligence i flexibility by šlo přímo do ASICu na kartě narvat víc než dost a nepřetěžovat hlavní procák. A field update logiky za provozu taky není problém.
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.