LwIP Stack: Zugriff auf Layer-2

Gast #1619156
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?
#1620563
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
Gast #1620685
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?
Gast #1620707
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.
#1621993
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.
#1622163
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.
#1622183
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 ...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.