Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[TokenRing] Soft Error Report Mac Frame

5 views
Skip to first unread message

Michael Bäuerle

unread,
Apr 18, 2022, 5:14:24 AM4/18/22
to
Bisher hatte ich eine 486-Maschine im Einsatz um zwischen Arcnet,
Ethernet und TokenRing zu routen. Diese hat nun den Geist aufgegeben,
genauer: die Maxtor LXT-340SY Festplatte ist nach über 20 Jahren
gestorben (falls jemand eine Kaufempfehlung sucht, diese Platte ist
sehr leise und zuverlässig ;-).
Da war eine TokenRing-NIC mit Olympic-Chipsatz drin, die immer
problemlos funktioniert hat.

Da die CPU dieser Maschine einen Lüfter hat, der regelmäßig kaputt
geht, habe ich als Ersatz ein Mainboard mit passiv gekühltem Pentium1
genommen.
Da drin steckt nun eine IBM "LanStreamer PCI Token Ring"-Karte. Diese
funktioniert im Prinzip, der lanstreamer-Treiber des 2.2.19 Linux-
Kernels schreibt aber regelmäßig folgendes ins Logfile:
|
| Apr 18 09:16:24 Router1 kernel: tr0: Adapter transmitted Soft Error Report Mac Frame
| Apr 18 09:16:24 Router1 kernel: tr0: Single Station on the ring
| Apr 18 09:16:27 Router1 kernel: tr0: Adapter transmitted Soft Error Report Mac Frame

Die Bitrate stimmt mit den anderen Ring-Teilnehmern überein. Wenn
ich die Karte als erste in den Ring einfüge, sagt der Treiber:
|
| tr0: Opened in 16 Mbps mode

Dass sie sich alleine im Ring befindet sollte AFAIK kein Grund für einen
"Soft Error" sein. Ich würde gerne herausfinden, was für ein Fehler da
gemeldet wird.

Gemäß [1] und anderen Quellen wird der "Soft Error Report Mac Frame"
an eine reservierte MAC-Adresse gesendet, die der "Ring Error Monitor"
abhört (Kapitel 6.5).
Nun habe ich natürlich keinen "Ring Error Monitor". Weiß jemand wie
das seinerzeit funktioniert hat?
War das eigene Hardware, oder ein Programm für einen Rechner?


_________
[1] <https://www.rhyshaden.com/tokenr.htm>

Wolfgang Gehl

unread,
Apr 18, 2022, 1:21:38 PM4/18/22
to
Am 18.04.22 um 11:14 schrieb Michael Bäuerle:
Vermutlich handelt es sich um die Treiberfunktion
STREAMER_NETWORK_MONITOR, die bei der Fehlersuche bei Netzwerkproblemen
helfen soll.

Die Funktion lässt sich laut dieser Quelle:
https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Token-Ring.html#DRIVERSSPECIFICS
nur beim kompilieren ein- oder ausschalten.

Da du sagst, dass es kein Netzwerkproblem gibt, kannst du die Meldung
ignorieren. Vielleicht möchtest du dem Treiber die Parameter
ringspeed=16 und message_level=0 mitgeben und damit die Meldungen im
Logfile vermindern.

Eine Frage noch für den Fall, dass dein LanStreamer an einem Token Ring
Switch hängt: unterstützt der Linux-Treiber Full Duplex?

Wolfgang


Michael Bäuerle

unread,
Apr 19, 2022, 4:56:56 PM4/19/22
to
Wolfgang Gehl wrote:
> Am 18.04.22 um 11:14 schrieb Michael Bäuerle:
> >
> > | [tr0: Adapter transmitted Soft Error Report Mac Frame]
> >
> > Gemäß [1] und anderen Quellen wird der "Soft Error Report Mac Frame"
> > an eine reservierte MAC-Adresse gesendet, die der "Ring Error Monitor"
> > abhört (Kapitel 6.5).
> > Nun habe ich natürlich keinen "Ring Error Monitor". Weiß jemand wie
> > das seinerzeit funktioniert hat?
> > War das eigene Hardware, oder ein Programm für einen Rechner?
>
> Vermutlich handelt es sich um die Treiberfunktion
> STREAMER_NETWORK_MONITOR, die bei der Fehlersuche bei Netzwerkproblemen
> helfen soll.
>
> Die Funktion lässt sich laut dieser Quelle:
> https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Token-Ring.html#DRIVERSSPECIFICS
> nur beim kompilieren ein- oder ausschalten.

Danke, das hatte ich übersehen.
Ich verstehe es aber so, dass er dann nur die Error-Frames der anderen
Karten anzeigt (nicht die, die er selbst versendet).

Aber ich könnte die alte Maschine mit der Olympic-Karte reparieren
(wollte ich sowieso machen) und diese dann in den Monitor-Modus
schalten, um dem LanStreamer zuzuhören.

> Da du sagst, dass es kein Netzwerkproblem gibt, kannst du die Meldung
> ignorieren.

Ja, ich war nur neugierig was die Karte mitteilen möchte.

> Vielleicht möchtest du dem Treiber die Parameter
> ringspeed=16 und message_level=0 mitgeben und damit die Meldungen im
> Logfile vermindern.

"ringspeed=16" scheint nicht nötig zu sein. Bei mir lässt sich die
Karte auch ohne den Parameter einfügen, wenn sie alleine auf dem Ring
ist (und wählt dann 16MBit/s, wie gewünscht).

Wenn die Sache erledigt ist, werde ich "message_level=0" setzen.

> Eine Frage noch für den Fall, dass dein LanStreamer an einem Token Ring
> Switch hängt: unterstützt der Linux-Treiber Full Duplex?

Er hängt an einer IBM 8228 MSAU (das passive Teil mit den bistabilen
Relais), also kein Switch.

Zu Full Duplex kann ich nichts sagen, das habe ich bei Token Ring noch
nie verwendet. Die 8228 MSAU hat gerade den Reiz, selbst keine Strom-
versorgung zu brauchen.


> > _________
> > [1] <https://www.rhyshaden.com/tokenr.htm>

Michael Bäuerle

unread,
May 20, 2022, 11:59:00 AM5/20/22
to
Michael Bäuerle wrote:
> Wolfgang Gehl wrote:
> > Am 18.04.22 um 11:14 schrieb Michael Bäuerle:
> > >
> > > | [tr0: Adapter transmitted Soft Error Report Mac Frame]
> > > [...]
> >
> > Vermutlich handelt es sich um die Treiberfunktion
> > STREAMER_NETWORK_MONITOR, die bei der Fehlersuche bei Netzwerkproblemen
> > helfen soll.

Offenbar doch nicht. Ich habe mal einen Blick in den Sourcecode geworfen
und dort steht, dass bei aktiver Option STREAMER_NETWORK_MONITOR eine
Datei "/proc/net/streamer_tr" (mit Fehler-Reports) bereitgestellt wird.
Diese Datei existiert auf meinem Rechner nicht, d.h. die Option sollte
abgeschaltet sein.

Eher die Option "message_level". Die Meldungen dürften von diesem Teil
hier stammen:
|
| /* If serious error */
| if (streamer_priv->streamer_message_level) {
| if (lan_status_diff & LSC_SIG_LOSS)
| printk(KERN_WARNING "%s: No receive signal detected \n", dev->name);
| if (lan_status_diff & LSC_HARD_ERR)
| printk(KERN_INFO "%s: Beaconing \n", dev->name);
| if (lan_status_diff & LSC_SOFT_ERR)
| printk(KERN_WARNING "%s: Adapter transmitted Soft Error Report Mac Frame \n", dev->name);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| if (lan_status_diff & LSC_TRAN_BCN)
| printk(KERN_INFO "%s: We are tranmitting the beacon, aaah\n", dev->name);
| if (lan_status_diff & LSC_SS)
| printk(KERN_INFO "%s: Single Station on the ring \n", dev->name);
^^^^^^^^^^^^^^^^^^^^^^^^^^
| if (lan_status_diff & LSC_RING_REC)
| printk(KERN_INFO "%s: Ring recovery ongoing\n", dev->name);
| if (lan_status_diff & LSC_FDX_MODE)
| printk(KERN_INFO "%s: Operating in FDX mode\n", dev->name);
| }

Alleine auf dem Ring zu sein als "serious error", genau wie Betrieb im
Full-Duplex Modus. Naja, wenn sie meinen ...

> > Die Funktion lässt sich laut dieser Quelle:
> > https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Token-Ring.html#DRIVERSSPECIFICS
> > nur beim kompilieren ein- oder ausschalten.
>
> Danke, das hatte ich übersehen.
> Ich verstehe es aber so, dass er dann nur die Error-Frames der anderen
> Karten anzeigt (nicht die, die er selbst versendet).
>
> Aber ich könnte die alte Maschine mit der Olympic-Karte reparieren
> (wollte ich sowieso machen) und diese dann in den Monitor-Modus
> schalten, um dem LanStreamer zuzuhören.

Diese Machine ist immer noch nicht repariert, aber ich habe es
mittlerweile mit einer anderen Maschine versucht (Kernel 2.2.26, also
neuer als der alte Router). Leider unterstützt der Olypic-Treiber dieses
Kernels den Parameter "network_monitor" noch nicht. Man müsste die
Option hineincompilieren, wie beim LanStreamer-Treiber.

Ich habe dann bei dieser Machine "message_level" auf 1 gesetzt.
Danach sagte sie:
|
| tr0: Opened in 16 Mbps mode
| tr0: Functional Adress Mask Set

Nun den Router mit der LanStreamer-Karte rebootet:
|
| tr0: Ring recovery ongoing
| tr0: Single station on the ring

Jetzt ist die Olympic-Karte der AM (Active Monitor) geworden.
Dann gewartet bis der Router wieder am Start war:
|
| tr0: Ring recovery ongoing
| tr0: Adapter transmitted Soft Error Report Mac Frame

und am Ende kam dann exakt die gleiche Meldung wie bei der LanStreamer-
Karte (solange die Karte noch alleine war hat sie den Soft Error Report
Mac Frame wohl zurückgehalten):
|
| tr0: Single station on the ring
| tr0: Adapter transmitted Soft Error Report Mac Frame

Dann ein paar Pakete zwischen den beiden Karten übertragen und
nochmal mit dmesg auf den Router geschaut, der ja nun seit dem
letzten Reboot nie alleine auf dem Ring war:
|
| LanStreamer.c v0.1.0 12/10/99 - Mike Sullivan
| tr0: IBM PCI tokenring card. I/O at 6800, MMIO at c581d000, using irq 10
| tr0: Ringspeed autosense mode on
| tr0: Opened in 16 Mbps mode

Nichts weiter. Kein Soft Error Report Mac Frame.

Es sieht also danach aus, als wäre an der Maschine mit LanStreamer-Karte
"message_level" nicht 0 (obwohl das gemäß Doku so sein sollte, wenn man
nichts angibt, was bei mir der Fall ist). Den Kernel habe aber nicht ich
gebaut, er könnte in dieser Beziehung gepatcht sein.

Außerdem scheint der Soft Error Report Mac Frame tatsächlich nur die
Nachricht zu transportieren, dass die Karte sich alleine auf dem Ring
befunden hat.

Michael Bäuerle

unread,
May 20, 2022, 12:02:16 PM5/20/22
to
Michael Bäuerle wrote:
> Wolfgang Gehl wrote:
> > Am 18.04.22 um 11:14 schrieb Michael Bäuerle:
> > >
> > > | [tr0: Adapter transmitted Soft Error Report Mac Frame]
> > > [...]
> >
> > Vermutlich handelt es sich um die Treiberfunktion
> > STREAMER_NETWORK_MONITOR, die bei der Fehlersuche bei Netzwerkproblemen
> > helfen soll.

> > Die Funktion lässt sich laut dieser Quelle:
> > https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Token-Ring.html#DRIVERSSPECIFICS
> > nur beim kompilieren ein- oder ausschalten.
>
> Danke, das hatte ich übersehen.
> Ich verstehe es aber so, dass er dann nur die Error-Frames der anderen
> Karten anzeigt (nicht die, die er selbst versendet).
>
> Aber ich könnte die alte Maschine mit der Olympic-Karte reparieren
> (wollte ich sowieso machen) und diese dann in den Monitor-Modus
> schalten, um dem LanStreamer zuzuhören.

Diese Machine ist immer noch nicht repariert, aber ich habe es
mittlerweile mit einer anderen Maschine versucht (Kernel 2.2.26, also
neuer als der alte Router), ebenfalls mit Olympic-Karte.
Leider unterstützt der Olympic-Treiber dieses Kernels den Parameter
"network_monitor" noch nicht. Man müsste die Option hineincompilieren,
wie beim LanStreamer-Treiber.

Ich habe dann bei dieser Machine "message_level" auf 1 gesetzt.
Danach sagte sie:
|
| tr0: Opened in 16 Mbps mode
| tr0: Functional Adress Mask Set

Nun den Router mit der LanStreamer-Karte rebootet:
|
| tr0: Ring recovery ongoing
| tr0: Single station on the ring

Jetzt ist die Olympic-Karte der AM (Active Monitor) geworden.
Dann gewartet bis der Router wieder am Start war:
|
| tr0: Ring recovery ongoing
| tr0: Adapter transmitted Soft Error Report Mac Frame

und am Ende kam dann exakt die gleiche Meldung wie bei der LanStreamer-
Karte (solange die Karte noch alleine war hat sie den Soft Error Report
Mac Frame wohl zurückgehalten):
|
| tr0: Single station on the ring
| tr0: Adapter transmitted Soft Error Report Mac Frame

Dann ein paar Pakete zwischen den beiden Karten übertragen und
nochmal mit dmesg auf den Router geschaut, der ja nun seit dem
letzten Reboot nie alleine auf dem Ring war:
|
| LanStreamer.c v0.1.0 12/10/99 - Mike Sullivan
| tr0: IBM PCI tokenring card. I/O at 6800, MMIO at c581d000, using irq 10
| tr0: Ringspeed autosense mode on
| tr0: Opened in 16 Mbps mode

Michael Bäuerle

unread,
May 21, 2022, 9:48:13 AM5/21/22
to
Michael Bäuerle wrote:
>
> [...]
> Es sieht also danach aus, als wäre an der Maschine mit LanStreamer-Karte
> "message_level" nicht 0 (obwohl das gemäß Doku so sein sollte, wenn man
> nichts angibt, was bei mir der Fall ist). Den Kernel habe aber nicht ich
> gebaut, er könnte in dieser Beziehung gepatcht sein.

Nein, ist er nicht. Die Doku (mini-HOWTO) ist an dieser Stelle einfach
falsch -- zumindest für die Kernel-Version 2.2.19.
Auch im Sourcecode des 2.2.19 Vanilla-Kernels ist der Default für
"message_level" 1 (beim olympic-Treiber dagegen 0).

Ich habe jetzt auf dem Router "message_level" explizit auf 0 gesetzt
und nun erscheinen die Meldungen nicht mehr im Log.
0 new messages