VPN (fastd): Optimierter Assembler für Kryptographie?

Hallo,

wir in Weimar nutzen keine Verschlüsselung, aber da sehr viele Communities wohl Gluon mit fastd einsetzen poste ich das mal:

Die meisten neueren TP-Link Router haben MIPS-Prozessoren mit sogenannten DSP-Extensions - 841v7 zumindest sowie der 3600er - der 1043NDv1 leider nicht. Insbesondere können die Fused-Multiply-Add Instruktionen, was auch für Krypto-Code ordentlich speedup bringt.

Jedenfalls gibt es auf github MIPS Assembler-Code der einige der Algorithmen im fastd beschleunigen dürfte: GitHub - cjdelisle/poly1305-mips32r2-donna: An implementation of Poly1305 for mips32r2 processors, based on the donna32 algorithm

Laut Benchmark etwa doppelt so schnell - das könnte für viele Router den Unterschied machen. Leider ist der Code nur für Poly1305 also den MAC-Teil des VPN-Tunnels - die Verschlüsselung selbst läuft ja über Salsa20 - dafür habe ich keinen Optimierten Assembler gefunden, prinzipiell könnte das aber auch davon Profitieren.

Ich bin kein Entwickler und kann auch nicht mehr dazu sagen, als das es im Idealfall einen 2x Speedup geben könnte.

Fände das aber angesichts der Verbreitung von Gluon und diversen Maßnahmen wie „x86 Offladern“ ein Problem das man sich mal anschauen könnte.

Würde mich freuen, wenn die Info an Leute gelangt, die da vielleicht etwas mit anfangen können.

Selbst unverschlüsselt wird der fastd nicht wirklich schneller.
Ich denke, dass hier nur noch wenig Optimierungspotential im crypto-Bereich liegt, sondern eher fastd in den Kernel müsste, weil es im Userland eben nicht effektiv ist.

1 Like

@adorfer hat vollkommen recht. Die meiste CPU-Zeit wird nicht mit Crypto selber, sondern mit den Kontext-Wechseln zwischen Kernel (Batman) und Userspace (Fastd) verbraten.

Ein paar bei uns im Admin-Team testen aktuell tunneldigger/L2TP und konnten mit einem 841er dabei bis zu 80mbit/s erreichen.

2 Likes

841er war 30 mbit, 1043v2 geht per ethernet bis 80mbit/s :smiley:

2 Likes

Oh ok, hatte ich falsch in Erinnerung.

7 posts were merged into an existing topic: Lokale Wolken per L2TP anbinden

hust Der L2TP-Thread freut sich auch über Aufmerksamkeit. :wink: