hne
Joined: 11 Jul 2008 Posts: 210 Location: Hannover
|
Posted: 21.06.2011, 15:42 Post subject: Bridge am eth0 empfängt 18 Geisterbytes als Trailer |
|
|
Durch zwei Fehler im Linux Netzwerk-Treiber des AT91 werden generell 18 Bytes zu viel an der Schnittstelle eth0 empfangen.
Beim normalen TCP/IP-Transfer oder bei gerouteten IP-Paketen fällt der Fehler nicht auf, da die Länge des Paketes aus dem IP-Header korrekt benutzt wird. Das Netzwerkinterface funktioniert also problemlos, wenn die Daten lokal im ADNP/9200 verarbeitet werden.
Werden die Daten jedoch im rohen Ethernet-Format benutzt, oder im Falle von Bridging weiter gereicht, dann sind alle Pakete um 18 Bytes länger. Einige Programme erkennen darin einen Ethernet-Trailer und wenn die Pakete das MTU-Limit von 1500 erreichen kommt es zu starken Übertragungsproblemen.
Im Linux Kernel linux-2.6.16.20-at91-ssv4 vom 3.6.2011 wurden diese Fehler behoben:- 4 Bytes CRC aus abziehen (siehe 2.6.27 Boris Astardzhiev)
- Ethernet-Länge "skb->len" nach "eth_type_trans" nicht ändern
_________________ Henry Nestler |
|