Salut!<br><br>Multumesc pentru raspunsuri, au fost de mare ajutor. O parte din modificari le-am facut si continui cu lucrul.<br><br>Constantin<br><br><div class="gmail_quote">2009/4/22 Radu Rendec <span dir="ltr"><<a href="mailto:radu.rendec@ines.ro">radu.rendec@ines.ro</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Tue, 2009-04-21 at 13:39 +0300, Constantin Blanariu wrote:<br>
> Voi avea nevoie să adaug o nouă facilitate în CLI și aș vrea să vă cer<br>
> un mic<br>
> guideline pentru asta.<br>
><br>
> Mă refer la arbori, funcții, locul unde ar trebui implementate.<br>
><br>
> Comenzile sunt:<br>
><br>
> (config-if) # channel-group <number> mode {on|passive|active}<br>
<br>
</div>Ionut ti-a zis deja unde anume trebuie adaugate comenzile. Eu vreau sa<br>
adaug cateva observatii:<br>
* momentan cli-ul stie de cateva tipuri de interfata: "port fizic in mod<br>
switched", "port fizic in mod routed", "interfata virtuala de vlan";<br>
* tree-ul de configurare de interfete e comun pentru toate tipurile, dar<br>
anumite comenzi sunt vizibile/rulabile doar pentru anumite tipuri de<br>
interfete;<br>
* channel-group ar trebui sa existe doar pentru "port fizic in mod<br>
switched";<br>
* tipurile de interfete sunt definite in userspace/cli/lib/interface.h -<br>
acolo gasesti IFF_SWITCHED, IFF_VIF etc;<br>
* pentru un exemplu de comanda care apare conditionat de tipul<br>
interfetei, uita-te la comanda "ip"; daca nu intelegi cum sunt filtrate,<br>
da mail si iti povestim<br>
<div class="im"><br>
<br>
> și<br>
><br>
> (config) # interface port-channel <number><br>
> (config-if) # switchport mode {access|trunk}<br>
<br>
</div>* practic trebuie sa adaugi un nou tip de interfata (pe langa cele pe<br>
care le-am enumerat mai sus), respectiv port-channel;<br>
* ar trebui sa modifici cel putin handlerul cmd_int_any() si functia<br>
if_parse_args() pe care se bazeaza acesta;<br>
* indiferent ce implementare la nivel de kernel vei alege (personal cred<br>
ca cel mai bine este ce a zis Ionut), vei avea un netdevice<br>
corespunzator interfetei portchannel;<br>
* similar cu interfetele ethX, interfetele tale pot fi denumite in mai<br>
multe feluri: Po1, Port1, Port-Channel1, oricare dintre celelalte dar cu<br>
spatiu inainte de 1 etc - cli-ul ar trebui sa recunoasca toate<br>
variantele (dar in final sa obtina index-ul interfetei cu care sa<br>
lucreze mai departe); aici ar trebui sa studiezi cum e implementata<br>
chestia asta pentru Ethernet;<br>
* similar cu interfetele vlanX, interfetele tale pot fi *create*<br>
on-the-fly in momentul in care dai "interface port-channel" din meniul<br>
config; aici trebuie sa studiezi cum e facuta asta pentru Vlan -<br>
algoritmul din cmd_int_any() nu e tocmai trivial<br>
<br>
Daca ai nelamuriri, stii unde sa intrebi ;)<br>
<br>
Bafta,<br>
<font color="#888888"><br>
Radu<br>
<br>
<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Constantin Blanariu<br>BEST Bucuresti<br>Tel: +40 744 527 893<br>E-mail: <a href="mailto:constantin.blanariu@gmail.com">constantin.blanariu@gmail.com</a><br><a href="http://www.BEST.eu.org/bucharest">www.BEST.eu.org/bucharest</a><br>