[LiSA-Devel] learning/forwarding

Radu Rendec radu.rendec at ines.ro
Mon Jun 22 12:42:11 EEST 2009


Salut,

Probabil ca vei avea nevoie sa adaugi niste flaguri si/sau camp(uri) de
stare in struct net_switch_port, ca sa stii in ce stare e interfata.
Codul de switching va trebui modificat ca sa tina cont de aceste
flag-uri.

1. Filtrare pe ingress si dezactivare learning: trebuie modificat in
sw_handle_frame() (fisierul sw.c) astfel incat pachetele sa fie ignorate
si/sau fdb_learn() sa nu fie apelat (apelul este spre sfarsitul
functiei). Vezi ca exista deja flagul SW_PFL_DROPALL pentru a face
discard la pachete.

2. Filtrare pe egress: daca stergi macurile din fdb si dezactivezi
learning-ul, probabil ca nu se va face unicast (de la alt port catre cel
dezactivat). Totusi exista cazul de flood (pentru mac destinatie
necunoscut sau pentru multicast), in care pe portul dezactivat nu ar
trebui sa se trimita pachete. Pentru asta trebuie modificat codul de
flooding.

Aici lucrurile sunt mai complicate pentru ca s-au facut niste modificari
semnificative in codul de flooding pe branch-ul de igmp. Ar trebui sa-i
facem merge in master si pe urma sa faci rebase la branch-ul tau, ca sa
evitam problemele.

3. Stergerea din fdb: in sw_fdb.c exista functii care sterg intrari din
fdb dupa diverse criterii:

fdb_cleanup_port()
fdb_cleanup_by_type()
fdb_cleanup_vlan()
fdb_del()

Probabil ca tie iti trebuie prima dintre ele. Ar trebui sa fie suficient
sa o apelezi de unde ai nevoie (ma refer la partea de sincronizare
aici).

In alta ordine de idei, stp-ul ar trebui sa "simta" modificarile de
stare a link-ului (fizic sau administrativ) pe interfete. Ai tratat
chestia asta?

Radu

On Sun, 2009-06-21 at 21:44 +0300, Faur Andrei wrote:
> Salut,
> 
> In curand voi ajunge la faza in care voi avea nevoie sa
> dau enable/disable la MAC address learning si la forwardarea
> de pachete. Also, va trebui sa pot sa sterg toate informatiile
> din forwarding database.
> 
> Unde in codul LiSA se fac aceste lucruri si care ar fi cea mai buna
> abordare?
> 
> Andrei
> _______________________________________________
> 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