Frage

Ich habe nicht in der Lage gewesen UDP-Multicast unter VxWorks 5.5 zu erhalten. Ich habe die Multicast-Gruppe beigetreten:

setsockopt(soc, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &ipMreq, sizeof (ipMreq));

ähnlicher Code auf einem benachbarten Windows-Rechner Multicast empfängt. Ich bin in der Lage Multicast von VxWorks zu senden; ifShow () zeigt die Schnittstelle multicastfähigen; MCAST_ROUTING wird in der Kernel-Konfiguration aktiviert, aber noch nicht Multicast empfangen.

Bearbeiten . Ich brauchte ein wenig in den RealTek Ethernet-Laufwerk RX Konfigurationsregister setzen Multicast zu ermöglichen auf die Anwendungsschicht übergeben wird

#define RTL_RXCG_AM           0x04      /* Accept Multicast */
War es hilfreich?

Lösung

Überprüfen Sie den Rückgabewert auf dem Join setsockopt () aufrufen, um sicher zu sein, es ist eigentlich Erfolg? Ich hatte ein spezifisches Problem mit VxWorks 5.5 in der Vergangenheit, wo meine Multicast schließt sich noch nicht bestehen, wenn sie nicht sein sollte. Ich glaube, wir mussten neue Bibliotheken von Windriver erhalten, um das Problem zu beheben.

Edit: Es gibt keinen spezifischen Trick, den ich von Multicast zu bekommen bewusst bin mit VxWorks zu arbeiten. Es sollte die Standard-BSD-Sockets-Operationen verwenden. Wenn die Schnittstelle richtig Unicast-Verkehr empfangen kann, und einen Netzwerkanalysator (Wireshark, zum Beispiel) zeigt, dass die Multicast-JOINs gesendet werden und die eingehenden Multicast-Pakete korrekt gebildet werden, würde ich ein Treiberproblem vermuten. Windriver Unterstützung hat mit dieser Art von Problemen für uns in der Vergangenheit sehr hilfreich gewesen; Ich weiß nicht, ob Sie mit ihnen einen Support-Vertrag haben das Niveau der Unterstützung zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top