Forum: Compiler & IDEs LwIP Stack: Zugriff auf Layer-2


von zoro (Gast)


Lesenswert?

Hallo,

ich möchte für einen 32Bit Mikrocontroller den LwIp Stack benutzen.
Für meine Applikation benötige ich den Zugriff auf Layer-2. Mir reicht 
nicht nur eine UDP bzw. TCP/IP Kommunikation sondern ich möchte direkt 
auf Layer-2 Telegramm versenden und empfangen können. Dazu müsste ich 
eventuell den LwIp Stack aufbohren. Bin mir aber hierbei nicht ganz 
sicher. Was müsste ich tun? Hat hier eventuell jemand sowas mit dem LwIp 
Stack für einen Mikrocontroller realisiert?

von zoro (Gast)


Lesenswert?

Müsste ich diesen Beitrag eventuell in einer anderen Rubrik reinstellen?

von Robert F. (fastred)


Lesenswert?

zoro schrieb:
> Müsste ich diesen Beitrag eventuell in einer anderen Rubrik reinstellen?

Gute Frage, passt irgendwie überall und nirgendwo ;)

Also ich persönlich habe noch nicht mit dem lwip-stack gearbeitet, 
andere allerdings schon -> suche "lwip" = 69 Threads gefunden.

Wenn ich mir die feat. Liste so anschaue, kann man eigentlich nicht mehr 
von "lightwight" sprechen :) , der Stack deckt ja fast alle üblichen 
Protokolle auf div. Ebenen ab ;)

Allerdings gibs die  Raw / native API, ggf kannste damit ja Layer 2 
Pakete erzeugen wie sie gerne hättest.
Ansonsten würd ich mir die ARP Implementierung mal anschauen, die is ja 
auf Layer2, ggf kannste daraus Dinge für deine Applikation ableiten.

http://lwip.wikia.com/wiki/Raw/native_API
http://lwip.wikia.com/wiki/ARP

von ... (Gast)


Lesenswert?

Für sowas ist uIP vielleicht besser geeignet.

von zoro (Gast)


Lesenswert?

Von dem "uIP" Stack hab ich auch mal beiläufig was gehört.
Kann man mit diesem Stack auch UDP sowie TCP/IP und auch Ethernet Frames 
versenden/empfangen?

von (prx) A. K. (prx)


Lesenswert?

Nackte Ethernet-Frames kann man auch ganz ohne TCP/IP-Stack verarbeiten.

von zoro (Gast)


Lesenswert?

Hallo A. K.,

ja das ist mir klar. Aber ich benötige den TCP/IP-Stack für andere 
Dinge.
Trotzdem müsste es doch möglich sein mit Hilfe dem TCP/IP-Stack Ethernet 
Frames zu versenden und zu empfangen.

von zoro (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab im Sourcecode von LwIP eine Headerdatei gefunden.
Mit dieser müsste es wahrscheinlich möglich sein ein Ethernet frame zu 
versenden.

von Robert F. (fastred)


Lesenswert?

Probiers aus und teile deine Erfahrungen ;)

von (prx) A. K. (prx)


Lesenswert?

Mit uIP geht es, denn der Empfang von Ethernet-Frames wird in der 
eigenen Mainloop geprüft und an uIP delegiert. Man kann dort also den 
besonderen non-IP Frame erkennen und separat handhaben. Senden ist 
ohnehin kein Problem.

von zoro (Gast)


Lesenswert?

Hi A. K., dank. Hast du eine kleine Beispielapplikation?

von (prx) A. K. (prx)


Lesenswert?

Siehe "doc/example-mainloop-with-arp.c" im offiziellen Quellcode. Die 
dortigen Behandlung von ARP ist ein Beispiel für einen non-IP-Frame.

Senden kann man an beliebiger Stelle ausserhalb von Interrupts, sofern 
der Puffer im Controller noch Platz hat.

von Robert F. (fastred)


Lesenswert?

Sag mal zoro befasst du dich ernsthaft mit der Materie?
Das du nicht als erstes die (den Projekten beiliegenden) Doku dir 
anschaust sowie die Codebeispiele, lässt da irgendwie Zweifel aufkommen 
...

Ich hoffe dir ist klar, dass Netzwerkprogrammierung an sich schon eine 
komplexe Aufgabe ist, mehr noch auf einem uC. Ich hoffe du bist fit in C 
und dem TCP/IP Schichtenmodell / Protokollen, sonst wird ne 
frustrierende Angelegenheit ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.