[LiSA-Devel] Modificare CLI
Ionut Nicu
ionut.nicu at ines.ro
Tue Apr 21 15:28:25 EEST 2009
Salut,
Arborii ce definesc structura comenzilor de CLI se definesc in:
userspace/cli/menu
iar handlerii de comenzi se definesc in:
userspace/cli/command
Daca te uiti la niste comenzi deja implementate cred ca te prinzi cam
cum ar trebui definiti. Daca ai intrebari/neclaritati apeleaza cu
incredere la lista asta... :)
> Comenzile sunt:
>
> (config-if) # channel-group <number> mode {on|passive|active}
>
Arborii submeniului asta poti sa-i definesti in
userspace/cli/menu/config_if.c iar handlerii in
userspace/cli/command/config_if.c (prototipurile lor le vei declara in
config_if.h din directorul command).
> și
>
> (config) # interface port-channel <number>
> (config-if) # switchport mode {access|trunk}
>
switchport mode access|trunk sunt deja implementate (si portate pe noul
cli).
Pana la urma cum vei implementa ether channel-ul?
In kernel-ul de linux exista deja suport pentru agregarea mai multor
link-uri fizice intr-un link logic: modulul se numeste bonding si il
gasesti in tree-ul de kernel in drivers/net/bonding. Nu i-am citit inca
sursele dar sunt sigur ca expune un API catre user space (probabil ioctl
based) pe care l-am putea folosi.
Eu as vedea design-ul feature-ului asta in felul urmator:
- modulul standard bonding din kernel folosit pentru agregare de
link-uri fizice. Acesta iti va crea niste interfete virtuale (bond0,
bond1 etc ... parca ..) pe care le vei adauga in switch.
- extinzi switch socket (similar cu ce va face Andrei Faur pentru STP)
pentru a primi LACP PDU-urile in user space.
- in user space va exista un daemon care implementeaza protocolul LACP:
acesta va comunica cu modulele de kernel (switch si bonding) prin ioctl-uri.
Ce parere ai? Ti se pare ok abordarea asta?
Bafta,
Ionut.
More information about the LiSA-Devel
mailing list