-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathTODO
74 lines (56 loc) · 2.96 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
New TODO list based on cli2 work
--------------------------------
CLI
MLS
* fix deadlock at VIF removal
* make SWCFG_ADDIF honour the ext.switchport flag so interfaces can be added
directly as routed
* routed interfaces must not be in promiscuous mode
* unify static and dynamic mac removal in a single command, based on the
addr_type field of struct net_switch_mac
Older TODO list
---------------
CLI
* Accept multiple interfaces when adding or deleting static MACs
* Group identical static MACs in a single command when building config
* Timeout in "Password:" prompt
* Ask for saving configuration on "reload"
MLS
* When we have static multicast macs, forward matching packets to
all appropriate ports, not just the first
BUG FIXING
1) Completion comanda de configurare interface ...
2) no interface ... mumu
3) show run / start nu arata interfetele != eth, vlan
Campurile de tip char[] cu lungime cunoscuta trebuie re-verificate, pentru a stabili
(si a fi consecventi) una din urmatoarele reguli:
* declaram campurile avand dimensiune exact cat constanta (ex. IFNAMSIZ) si folosim
intotdeauna strncpy cu constanta; string-ul NU este null terminated daca are exact
lungimea din constanta -> aici pot sa apara probleme pentru ca atunci cand se
"citeste" (adica se copiaza intr-un alt buffer "suficient de mare") string-ul
rezultat nu va fi de asemenea null-terminated
* declaram campurile avand dimensiune constanta + 1, folosim strncpy pentru scriere
in ele (si punem '\0' in str[CONSTANTA] pentru a ne asigura ca e null-terminated);
folosim strcpy pentru citire (pentru ca este null terminated)
Shared (shared.c)
Trebuie asigurata consistenta intre comenzile de tipul cfg_ in sensul apelarii lor
avand lock pe cfg sau nu: ori fiecare functie isi asigura singura zona critica
(cfg_lock() si cfg_unlock()), ori trebuie asigurat din afara pentru toate. Hit:
cfg_lock() poate fi apelat de mai multe ori, fara probleme. Mai bine se face din
interior la fiecare => e mai sigur si mai usor de programat. Logic ar fi ca doar
functiile (statice) cu __ la inceput sa functioneze cu zona critica asigurata din
exterior.
Comanda write mem nu merge in cazul in care nu exista /etc/lisa si/sau /etc/lisa/tags.
Normal de altfel, pt ca fopen intoarce eroare. Ar trebui totusi ca functia sa creeze
directoarele in cazul in care nu exista.
./swcfgload <if_name> <tag_name> [<description>] - Nu adauga si tag-ul (cel putin
asa se intelege din output-ul lui show run).
BUG FIX build userspace
1) flagul "-g" e pus dupa principii "random"; ar trebui sa se faca in toate Makefile
o regula de genul "daca e definit DEBUG, atunci CFLAGS+= -g; se compileaza cu DEBUG=1 make
pentru debugging
2) daca se fac modificari in mm.c si se da make (general, in userspace), nu se recompileaza
nimic; ar trebui buildate intai chestiile din lib, apoi restul sa aiba dependente
integrare rstplib: http://rstplib.sourceforge.net/
integrare openvpms: http://vmps.sourceforge.net/
integrare mpls: http://mpls-linux.sourceforge.net/