[LiSA-Devel] Modul de configurare al interfetei

Radu Rendec radu.rendec at ines.ro
Fri May 22 16:31:06 EEST 2009


Salut,

Una dintre modificarile de abordare din CLI2 este ca incercam pe cat
posibil sa nu identificam interfetele dupa nume (care poate fi modificat
usor) ci dupa index (care ramane constant cat timp interfata exista).

Prin urmare poti afla relativ usor index-ul astfel:

Daca blablabla_enable() este handler de comenzi, atunci ar trebui sa
aiba (si) parametrul struct cli_context *ctx. Mai departe ti-ar trebui
(pentru usurinta) o variabila helper de tipul:

struct swcli_context *uc = SWCLI_CTX(ctx);

Variabila asta foloseste sa nu faci SWCLI_CTX(ctx) de fiecare data cand
ai nevoie. Index-ul este in uc->ifindex

Mai multe exemple poti gasi in userspace/cli/command/config_if.c, unde
sunt implementarile comenzilor din meniul config-if.

Daca ai nevoie chiar de nume, singura varianta este sa il afli. Daca iti
trebuie pentru o singura interfata, foloseste if_get_name()
(userspace/lib/if_generic.c). Daca iti trebuie multe, pentru optimizare
se poate face o structura de mapare; zi-mi daca ai nevoie si iti explic.

Radu


On Fri, 2009-05-22 at 14:40 +0300, Constantin Blanariu wrote:
> Salut!
> 
> Din modul de configurare al interfetei, config-if, dau o comanda, care
> apeleaza o functie, generic vorbind.
> 
> In acea functie, cum aflu cel mai repede numele interfetei in care am
> intrat ?
> 
> Ex:
> (config)# int eth3
> (config-if)# blablabla
> iar in functia blablabla_enable (cool name, huh ? :) am nevoie de
> eth3. Cum il obtin ?
> 
> Constantin
> 
> -- 
> Constantin Blanariu
> 
> _______________________________________________
> LiSA-Devel mailing list
> LiSA-Devel at lisa.ines.ro
> http://lisa.ines.ro/mailman/listinfo/lisa-devel



More information about the LiSA-Devel mailing list