Alien21 takze rikas, ze je moznost poridit sitovku ktera bude mit hw akceleraci pro pppoe primo v sobe, a neni potreba zadna podpora v sw?
Ano aj nie... 😉
Skusim strucne zhrnut, kde je pes zakopany, a ako sa to da riesit...
Pri 10 Gbit/s a velkosti paketu 1500 bajtov treba preniest viac ako 500tisic paketov za sekundu. Na precitanie jedneho paketu zo sietovky treba najmenej jedno prerusenie, takze potrebujeme aspon pol miliona preruseni za sekundu, a to idealne na jednom jadre procesora. A to ziadny bezny CPU neutiahne (spokojne mozno tak desatinu z toho). Da sa to rozhodit medzi viac jadier procesora, ale to prinasa dalsiu reziu a dalsie spomalenie, takze rozhodenie medzi 4 jadra prinesie mozno dvojnasobok vykonu, a k tomu riziko prehodenia poradia paketov pri spracovani.
Pri akceleracii sa pakety (isteho druhu) ciastocne spracuju priamo v sietovke a precitaju sa potom ako jeden. (Priamo sietovka rozpozna hlavicku paketu, pakety tykajuce sa rovnakeho spojenia spoji, a vrati ich na jedno prerusenie ako jeden megapaket). Aby to fungovalo, tak priamo chip sietovky musi poznat protokoly, s ktorymi pracuje.
Najcastejsie sa pouziva IP protokol a jeho akceleracia je pomerne bezne dostupna. PPPoE takto bezne dostupne nie je. Najnizsi chipset od intelu ktory som nasiel je X700/X710, a tento umoznuje do sietovky natiahnut tzv. personalizaciu, ktora umozni sietovke poznat aj PPPoE. Alebo GTP, pouzivane na datove prenosy v mobilnych sietach.
https://www.intel.com/content/www/us/en/developer/articles/technical/dynamic-device-personalization-for-intel-ethernet-700-series.html
https://www.intel.com/content/www/us/en/download/19306/intel-ethernet-controller-x710-xxv710-xl710-adapters-dynamic-device-personalization-pppoe-package.html
https://downloadmirror.intel.com/28040/Dynamic_Device_Personalization_PPPoE_PPPoL2TP_Rev1.1.pdf
Sietovky s tymto chipom stoja radovo par sto dolarov za kus. Malo by to spravit 10gbit/s PPPoE celkom v pohode.