[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