Wobei mir der Sinn einer festen Einstellung auf 10 Mbit/s nicht klar wird - zwischen GbE und FE sehen ich ja noch Stromspargründe (2 Adernpaare vs. 4), aber die dürften beim Vergleich zwischen 10 und 100 Mbit/s fast nicht mehr messbar sein.
Wenn man einen Port tatsächlich abschalten will, sollte es bereits ausreichend sein, ihn in der
ar7.cfg
aus der
lan
-Bridge zu nehmen (das passiert auch, wenn er eine eigene
ipsecbrX
-Einstellung kriegt) - allerdings geht das tatsächlich nicht mit irgendwelchen
ctlmgr
-Kommandos (zumindest kenne ich keines) und einen Neustart des
ctlmgr
aus dem Webinterface heraus zu veranlassen (das ja über ebendiesen
ctlmgr
läuft), ist nicht so einfach. Abgesehen davon, daß solche Änderungen (zumindest bisher) auch immer einen Neustart des
dsld
brauchten (auch im LAN1-Modus), um schließlich wirksam zu werden - das galt/(gilt?) auch für das "Umwidmen" eines Ports als ausschließlicher VPN-Anschluß.
Wenn es also für diese Einstellung tatsächlich neue Optionen bei der Steuerung über den
ctlmgr
geben sollte, dann könnte man sicherlich auch das mit den 10 Mbit/s noch realisieren - aber wozu braucht man das wirklich?
Die Einstellung existiert intern ohnehin schon länger (schon seit der 07.24 sehen die Properties für die eth_ports so aus:
Code:
~ # LD_LIBRARY_PATH= ctlmgr_ctl u eth_ports
eth_ports:settings/
eth0/
mode=2
portmode=0
carrier=1
speed=1000
maxspeed=1000
speed_list=10,100,1000
function=wan
label=LAN:1
eth1/
mode=2
portmode=0
carrier=1
speed=1000
maxspeed=1000
speed_list=10,100,1000
function=lan
label=LAN:2
eth2/
mode=1
portmode=0
carrier=0
speed=0
maxspeed=10
speed_list=10,100,1000
function=lan
label=LAN:3
eth3/
mode=2
portmode=0
carrier=0
speed=0
maxspeed=1000
speed_list=10,100,1000
function=guest
label=LAN:4
~ #
- das ist eine 7490) und es gibt auch eine Liste der möglichen Werte (
speed_list
), aber bisher war es (bei der 7490 zumindest) auch nicht möglich, den Port auf
maxspeed=0
zu setzen. Genauso sind andere Einstellungen nur "Anzeigen" und nicht per
ctlmgr_ctl
zu ändern - eigentlich sind m.W. sogar nur zwei Werte (
mode
+
maxspeed
) überhaupt "beschreibbar".
mode
akzeptiert dabei nur die Werte 1 oder 2 (0 und 3 gehen nicht, mehr hatte ich nie getestet) - hierüber wurde bislang die Umschaltung zwischen "Power-Mode" und "Green-Mode" ausgeführt. Wenn man
maxspeed
auf Werte kleiner 1000 setzt, wird
mode
auch automatisch mit auf 1 gesetzt - das aber eben alles auf einer Box, die gar keine 2,5 Gbit/s unterstützt. Bei anderen Modellen wird da vermutlich auch noch 2500 aufgeführt sein in der Liste?
Ansonsten sind die Werte ja "selbstbeschreibend" -
mode
hatte ich erwähnt,
portmode
habe ich nie anders als 0 gesehen (könnte erst bei 2,5 Gbit/s ins Spiel kommen, ist aber definitiv keine Anzeige für FD oder HD, sagt jedenfalls mein Switch, den ich auf feste Werte stellen kann, was NICHT zum Ändern von
portmode
in der Box führt),
carrier
steht für das eingesteckte Kabel (natürlich nur eines mit aktiver Gegenstelle),
speed
ist der aktuell verwendete Wert (der geht bei 10 Mbit/s auch mit runter auf 10) und die anderen Werte sind (nach meinen Tests) "unveränderlich" (und selbsterklärend ohnehin).
Da könnte man zwar sicherlich auch noch eine Anzeige einbauen, was da aktuell verwendet wird - aber die Anzeige HD vs. FD müßte man erst aus
/proc/devices/virtual/net/eth*
hervorkramen, etc. ... und auch für das Deaktivieren eines Ports (dauerhaft ist das ja ohnehin nicht, wie weiter vorne (durchaus richtig) schon steht) reicht üblicherweise schon ein
ifconfig ethX down
aus. Permanent geht es dann wieder, indem man den aus der
lan
-Bridge nimmt, wobei ich nicht genau weiß, was der im "dangling state" dann machen würde mit eingehendem Traffic, denn das
up
als
operstate
war (iirc) nur von der aktiven Ethernet-Verbindung abhängig. Aber der einzelne Port dürfte keine IP-Adresse im FRITZ!OS kriegen und damit sollte alles, was oberhalb von (OSI-)Layer2 passiert, an diesem Port keine Rolle mehr spielen.
Man könnte vermutlich also tatsächlich noch eine "Status-Seite" für die Ethernet-Ports einbauen (inkl. Zähler für die Pakete, denn die dürften vom Switch auch dann richtig gezählt werden, wenn sie über den PA verarbeitet wurden) - nur wer braucht die am Ende? Zumal man dieselben Daten ja leichter über die Console erreichen kann - und wer's wirklich aufgehübscht braucht, der kann/sollte direkt über SSH (oder meinetwegen auch ein zusätzliches CGI-Skript o.ä.) die Daten auslesen und an sein graphisches Anzeige-Tool verfüttern. Ich sehe da einfach den Nutzen (außer eben "nice to have") nicht so richtig - wieviele Leute würden so etwas tatsächlich brauchen, wofür wäre das sinnvoll und wieso ist das dann (inkl. der Notwendigkeit der Firmware-Modifikation) über das GUI einfacher als über das CLI?
Da fielen mir wesentlich wichtigere Änderungen ein, die man per GUI einbauen könnte - angefangen bei statischen IP-Adressen in der DNS-Auflösung der Box. Das geht zwar mittlerweile schon länger in den "Interna" der Box (wer will, kann sogar
www.avm.de
auf eigene Proxies umleiten lassen), aber dafür braucht man halt den Shell-Zugang und ein
aicmd multid dnsd addstatic <name> <ip>
. Auf demselben Weg kann man den DNS-Cache der FRITZ!Box löschen lassen, etc. - DA sähe ich eine viel nützlichere Baustelle, wenn jemand am GUI der Box basteln möchte, als beim Einstellen eines Ports auf 10 Mbit/s. Wer das wirklich braucht, kann das dann (angesichts der Tatsache, daß man die Firmware ohnehin modifizieren müßte) auch locker über das CLI einrichten - wenn es wirklich mal um eine so schlechte Leitung geht, daß man da mit manueller Einstellung mehr erreicht. Am Ende wäre man ohnehin mit
ethtool
(was zumindest bei der 7490 auch dabei sein sollte, zumindest war es bei der 07.24 noch drin) besser bedient, weil man da die Aspekte genauer konfigurieren kann:
Rich (BBCode):
~ # ethtool -s eth3 autoneg off speed 10 duplex half
~ # ethtool eth3
Settings for eth3:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Half
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
MDI-X: on
Link detected: yes
~ # ethtool -s eth3 autoneg on
~ # ethtool eth3
Settings for eth3:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on
Link detected: yes
~ #
Der langen Ausführung kurzer Sinn: Um die Ports in ihren Möglichkeiten zu beschränken, braucht es gar nicht die "neue" Option,
maxspeed
direkt zu setzen (keine Ahnung, wie lange das schon funktioniert, aber ich nehme mal an, das ist schon deutlich länger, als die neue Struktur in der
ar7.cfg
jetzt existiert - die interne Einstellung des
ctlmgr
oben ist, wie geschrieben, aus der 07.24, die ich immer noch auf der Box habe, weil die tatsächlich nur zum Experimentieren ist und keinen echten Internet-Verkehr zu bewältigen hat), sondern das wäre auch schon deutlich länger möglich (bis hin zum simplen
ifconfig ... down
von weiter oben). Nur erscheinen mir die Einsatzzwecke dafür in der Realität deutlich zu selten (zumindest die einleuchtenden), als daß sich der Aufwand lohnen würde.