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">&lt;<a href="mailto:radu.rendec@ines.ro">radu.rendec@ines.ro</a>&gt;</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>
&gt; Voi avea nevoie să adaug o nouă facilitate în CLI și aș vrea să vă cer<br>
&gt; un mic<br>
&gt; guideline pentru asta.<br>
&gt;<br>
&gt; Mă refer la arbori, funcții, locul unde ar trebui implementate.<br>
&gt;<br>
&gt; Comenzile sunt:<br>
&gt;<br>
&gt; (config-if) # channel-group &lt;number&gt; 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: &quot;port fizic in mod<br>
switched&quot;, &quot;port fizic in mod routed&quot;, &quot;interfata virtuala de vlan&quot;;<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 &quot;port fizic in mod<br>
switched&quot;;<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 &quot;ip&quot;; daca nu intelegi cum sunt filtrate,<br>
da mail si iti povestim<br>
<div class="im"><br>
<br>
&gt; și<br>
&gt;<br>
&gt; (config) # interface port-channel &lt;number&gt;<br>
&gt; (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 &quot;interface port-channel&quot; 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>