Autor Thema: solaris 10 - interface karte konfigurieren - "set 1000 duplex"  (Gelesen 5122 mal)

JanD

  • Gast
Hi

mit nddget Befehlen kann ich mir die ifKarten Config ansehen
mit nddset setzen

1. Frage: wo ist die Standard-Config?  Nach dem reboot gibt es eine bestimmte Einstellung, die muss ja woher kommen
2. Frage
ein nddget direkt nach dem reboot gibt mir
e1000g0 adv_1000fdx_cap 1
e1000g0 adv_1000hdx_cap 0
e1000g0 adv_100fdx_cap 1
e1000g0 adv_100hdx_cap 1
e1000g0 adv_10fdx_cap 1
e1000g0 adv_10hdx_cap 1
e1000g0 adv_autoneg_cap 1
e1000g0 link_status 1
e1000g0 link_speed 1000

der switsch steht auf auto und ich setze
ndd -set /dev/$interface adv_1000fdx_cap 0
ndd -set /dev/$interface adv_1000hdx_cap 0
ndd -set /dev/$interface adv_100fdx_cap 0
ndd -set /dev/$interface adv_100hdx_cap 0
ndd -set /dev/$interface adv_10fdx_cap 0

Ergebnis:

e1000g0 adv_1000fdx_cap 0
e1000g0 adv_1000hdx_cap 0
e1000g0 adv_100fdx_cap 0
e1000g0 adv_100hdx_cap 0
e1000g0 adv_10fdx_cap 0
e1000g0 adv_10hdx_cap 1
e1000g0 adv_autoneg_cap 1
e1000g0 link_status 1
e1000g0 link_speed 10


warum ist speed auf 10 - hat das Auswirkungen ?
warum ist 10hdx auf 1 ?  hab ich doch auf 0 gesetzt ?

ndd -set /dev/$interface adv_10hdx_cap 0
ndd -set /dev/$interface adv_autoneg_cap 1

irgendwie stelle ich mit nddset was ein, was ich aber mit nddget nicht bestätigt bekomme

geht das anders?

sonnenblen.de - Das unabhängige Sun User Forum


Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: solaris 10 - interface karte konfigurieren - "set 1000 duplex"
« Antwort #1 am: 10. Juni 2010, 18:10:50 »
1. Frage: wo ist die Standard-Config?  Nach dem reboot gibt es eine bestimmte Einstellung, die muss ja woher kommen

Früher (<= Solaris 9) war die in der Datei /etc/system, bei Solaris 10 gibt es aber einen anderen Mechanismus. Mehr fällt mir im Moment nicht mehr ein, ist jetzt schon ein paar Jahre her dass ich mein 10'er System konfiguriert habe. Sonst habe ich immer nur mit 8, 9 oder sogar noch 2.6 zu tun.

Zitat
der switsch steht auf auto und ich setze
ndd -set /dev/$interface adv_1000fdx_cap 0
ndd -set /dev/$interface adv_1000hdx_cap 0
ndd -set /dev/$interface adv_100fdx_cap 0
ndd -set /dev/$interface adv_100hdx_cap 0
ndd -set /dev/$interface adv_10fdx_cap 0

Ergebnis:

e1000g0 adv_1000fdx_cap 0
e1000g0 adv_1000hdx_cap 0
e1000g0 adv_100fdx_cap 0
e1000g0 adv_100hdx_cap 0
e1000g0 adv_10fdx_cap 0
e1000g0 adv_10hdx_cap 1
e1000g0 adv_autoneg_cap 1
e1000g0 link_status 1
e1000g0 link_speed 10


warum ist speed auf 10 - hat das Auswirkungen ?
warum ist 10hdx auf 1 ?  hab ich doch auf 0 gesetzt ?

Nein. 10hdx hast Du nicht angerührt, nur 10fdx (es sei denn da fehlt eine Zeile). Speed steht auf 10 weil die einzige Geschwindigkeit die noch erlaubt ist 10MBit halbduplex ist (10hdx). Auswirkungen: Der Link läuft mit 10MBit halbduplex, wie das gute alte Koaxkabel.

Was willst Du eigentlich damit bezwecken? Die diversen adv_*_cap Flags stehen für "advertise capability", also ob die Karte von sich behauptet die entsprechende Fähigkeit zu besitzen.

Mit adv_1000fdx_cap 0 verbietest Du ihr also die Geschwindigkeit 1000MBit vollduplex auszuhandeln, mit adv_100hdx_cap 0 entsprechend 100MBit halbduplex.

Wenn Du es schaffst alle Kombinationen 1000/100/10 fdx/hdx abzuklemmen dann sollte wohl gar keine Verbindung mehr zustande kommen. Vielleicht lässt die Karte das nicht zu und der kleinste gemeinsame Nenner 10hdx bleibt dann gezwungenermaßen aktiv?

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: solaris 10 - interface karte konfigurieren - "set 1000 duplex"
« Antwort #2 am: 10. Juni 2010, 18:19:26 »
Moin,

die "default config" is in dem Treiber eingebaut und lautet "Autoneg an und alles moegliche anbieten". Das sieht man in deinem ersten Output auch und die Sun und der Switch einigen sich dann 1GB und alles ist gut. Warum willst du daran noch was aendern?

Im naechsten Schritt nimmts du ndd und schaltest 1GB, 100Mbit sowie 10Mbit fdx aus. Bleibt also logischerweise noch 10Mbit hdx ueber und genau darauf einigen sich dan Sun und Switch neu. Ist also auch alles konsistent. Ich sehe nicht wo hier dein Problem sein soll.

Tschau,
  Drusus.

Offline Sparky

  • Sobl Guru
  • *****
  • Beiträge: 3260
  • HyperSPARC ! Das fetzt......
    • HyperSTATION
Re: solaris 10 - interface karte konfigurieren - "set 1000 duplex"
« Antwort #3 am: 10. Juni 2010, 19:46:38 »
Ich sehe nicht wo hier dein Problem sein soll.

Tschau,
  Drusus.

ER ist das Problem - oder anders:
Das Problem sitzt immer vor dem Rechner!
Cheers
Jürgen
www.hyperstation.de
alles zu HyperSPARC, SBus-Karten und AG-10E Howto

JanD

  • Gast
Re: solaris 10 - interface karte konfigurieren - "set 1000 duplex"
« Antwort #4 am: 11. Juni 2010, 11:41:29 »
sorry sorry

habe mich vertippt - schalte natürlich 1000fdx ein

ich frage mal anders
zwinge ich die Karte mit nddset 1000fdx 1 (alles andere 0) mit 1000 full duplex zu arbeiten, wenn die gegenseite auto ist?

was passiert, wenn ich folgendes mache
nddset 1000fdx 1
nddset auto 1

ist auto dann vorangig? und das system setzt automatisch die anderen Parameter (100 f und h - 10 f und h)


das habe ich gemacht:
ndd -set /dev/$interface adv_1000fdx_cap 1
ndd -set /dev/$interface adv_1000hdx_cap 0
ndd -set /dev/$interface adv_100fdx_cap 0
ndd -set /dev/$interface adv_100hdx_cap 0
ndd -set /dev/$interface adv_10fdx_cap 0
ndd -set /dev/$interface adv_10hdx_cap 0
ndd -set /dev/$interface adv_autoneg_cap 1

und das zeigt mein nddget dann an -
e1000g0 adv_1000fdx_cap 1
e1000g0 adv_1000hdx_cap 0
e1000g0 adv_100fdx_cap 1
e1000g0 adv_100hdx_cap 1
e1000g0 adv_10fdx_cap 1
e1000g0 adv_10hdx_cap 1
e1000g0 adv_autoneg_cap 1
e1000g0 link_status 1
e1000g0 link_speed 1000


das passt irgendwie nicht...

linkspeed zeigt mir die eingestellte Geschw an
wer zeigt full bzw half an?

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: solaris 10 - interface karte konfigurieren - "set 1000 duplex"
« Antwort #5 am: 11. Juni 2010, 12:58:30 »
Moin,

ich glaube du hast da ein grundsaetzliches Verstaendnisproblem mit den Paramatern.

Mit dem Parameter "adv_autoneg_cap" stellt du ein ob du hier ueber Auto-Negotiation machen willst oder nicht.
Wenn adv_autoneg_cap auf 1 steht, dann kannst du mit den anderen adv_<speed>_cap Werten angeben was die Sun der Gegenseite alles an Geschwindigkeiten vorschlagen soll. Aus dieser Menge und der Menge der Gegenseite wird dann der groesste gemeinsamme Nenner genommen.
Wenn adv_autoneg_cap auf 0 steht, dann schaltest du Auto-Negotiation aus und musst dann ueber den ndd Parameter force_speed_duplex die gewuenschte feste Geschwindigkeit einstellen (z.B. 4 fuer 100Mbit fill duplex). Siehe "man e1000g" fuer mehr Infos. Dort gibt es einen Abschnitt "Configuration Options Using ndd".

Bliebe noch die Frage warum dein ndd get dir andere Werte zurueckliefert als du per set eingestellt hast.
Die ndd set Werte gelten nur bis zum naechsten Reboot und sind daher nicht persistent. Wenn du da angeblich ein Problem mit ndd set/get hast, dann waere es hilfreich ein typescript von einer gesamten Session zu haben wo die set und get Befehle zu sehen sind. In deinem cut and paste aus Scripten ist dieses nicht erkennbar, da hier weder ersichtlich ist ob das richtige Interface genutzt wurde noch was alles zwischen dem set und dem get passiert.

Bitte beachte, dass der Wert fuer Auto-Negotiation (an oder aus) auf beiden Seiten gleich eingestellt sein muss. Du kannst nicht anfangen auf der Sun-Seite was zu forcen waehrend der Switch noch auf Autoneg steht.

Meine Empfehlung: Finger weg von dem Tunable und den Default nutzen (Autoneg an, alles moegliche anbieten und sehen was die Remote Seite kann). In deinem Beispiel ist ja auch zu sehen, dass das prima klappt und das Interface korrekt auf 1Gb fdx steht.

Den Duplex wert kannst du per ndd Parameter link_duplex abfragen (1 = half duplex, 2 = full duplex). Einfacher als das ganze ndd Geraffel geht es aber mit dem Befehl "dladm show-dev".

Tschau,
  Drusus.