Ethernet, LWIP, STM32F107 - no RX packets?

Gast #4558397
Lesenswert?

Hallo liebes Forum,
ich habe ein Board mit STM32F107 und PHY gebastelt und bin nun dabei die 
Implementierung des LWIP Stacks zu testen.
Über mein Laptop sende ich ein ping der kommt auch über 
Ethernet->PHY->RMII beim Controller an und über RMII wird ein ARP 
response gesendet. Dieses ARP Frame habe ich auf Bitebene (RMII) 
analysiert und es ist korrekt.
Mein Laptop empfängt nichts, der RX Packets Zähler bleibt bei 0 stehen 
und es kommt "Destination Host Unreachable". Die ARP Tabelle bleibt auch 
leer.
Speed ist 100MBit und AutoNeg ist bei beiden an.


Wie würdet ihr bei der Fehlersuche vorgehen? Was könnte die Ursache 
sein? Kann der Laptop falsch konfiguriert sein? Gibt es unter Linux 
Tools die mir beim debugging helfen (abseits von wireshark)?
Gast #4558540
Lesenswert?

Hey, wenn ARP schon nicht richtig geht, brauchst Du nicht bei ICMP zu 
suchen.

Folgende Reihenfolge hilft bei der Fehlersuche:
1. Paketempfang auf uC sicherstellen
2. Paketsenden von uC zu Host sicherstellen (wireshark + promiscuous 
mode)
3. ARP request empfangen
4. ARP reply aussenden (Checksumme im wireshark richtig?)
5. IP/ICMP echo request empfangen
6. IP/ICMP echo response schicken (Checksumme(n) im wireshark richitg?)
Dann kann es mit UDP oder TCP weitergehen.

Solange die ARP replys beim Host noch nicht ankommen, braucht man keine 
Netzmaske, kein ICMP und auch kein DHCP. Das kommt alles viel später.
Gast #4559279
Lesenswert?

Moin Jan,

mein Nucleo-F746 ist heute angekommen, so das ich deine Konfiguration 
mal kurz getestet habe.

Am Router per Kabel mit DHCP -> alles Super.

Bei der Direktverbindung zum Ubuntu-PC ging das Ping genau ein Mal.
Der Grund: da ich nur temporär die IP zuweisen wollte, habe ich auf der 
Konsole mit "ip addr add" die Adresse angegeben.
Nur ist diese dann - vermutlich durch den Network-Manager - nach ein 
paar Sekunden wieder verschwunden und somit kein weiterer Ping möglich.
Egal ob das WLAN aktiv ist oder nicht.

Ist deine PC IP dauerhaft eingestellt/noch vorhanden?
Gast #4559423
Lesenswert?

Über Wireshark sehe ich das keine Pakete empfangen werden.

Meine IP ist statisch festgelegt.

Komisch finde ich das ich eine IPv6 Addresse habe. Wie kann das sein?
Ich kenn mich damit leider nicht gut genug aus.

ifconfig liefert:
eth0
Link encap:Ethernet  HWaddr 60:02:XX:XX:XX:XX
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: XXXX::XXXX:XXXX:XXXX:XXXX/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:29513 (29.5 KB)
          Interrupt:18
Gast #4559462
Lesenswert?

Jan schrieb:
> Über Wireshark sehe ich das keine Pakete empfangen werden.
Dann prüfe erstmal, ob der ARP-Request im Mikrocontroller ankommt.
(per printf-UART-Debugging oder per JTAG/SWD-Debugzugriff)


> Meine IP ist statisch festgelegt.

> Komisch finde ich das ich eine IPv6 Addresse habe. Wie kann das sein?
> Ich kenn mich damit leider nicht gut genug aus.

Da stehen doch zwei Adressen da:
>   inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
>   inet6 addr: XXXX::XXXX:XXXX:XXXX:XXXX/64 Scope:Link

Der Netzwerkstack des Hosts kann beides unterscheiden. Dafür ist 
schließlich das Versionsfeld bei IP da:

https://de.wikipedia.org/wiki/IP-Paket#Version
Gast #4559478
Lesenswert?

LHA schrieb:
> Dann prüfe erstmal, ob der ARP-Request im Mikrocontroller ankommt.
> (per printf-UART-Debugging oder per JTAG/SWD-Debugzugriff)

Das kommt an und wird daraufhin beantwortet mit einem ARP Response. 
Dieser kommt nur nie am Laptop an.

Spannungspegel, Augendiagramme, Takte habe ich geprüft und alles ist in 
Ordnung.

Ich werde demnächst wohl erstmal mein PHY allein an eine andere Hardware 
hängen und testen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren