Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rl:teme:tema1_sw [2024/10/24 22:05]
vlad_andrei.badoiu [VLAN]
rl:teme:tema1_sw [2024/11/02 13:52] (current)
vlad_andrei.badoiu
Line 3: Line 3:
 === Lectura recomandata === === Lectura recomandata ===
  
-  * **Cursul si laboratorul de VLAN & STP**+  * Tema ar trebui facuta doar dupa ce ati parcurs ​**Cursul si laboratorul de VLAN & STP**
  
   * [[https://​beta.computer-networking.info/​syllabus/​default/​protocols/​lan.html?​highlight=spanning%20tree%20protocol#​ethernet-switches|Ethernet Switches]]   * [[https://​beta.computer-networking.info/​syllabus/​default/​protocols/​lan.html?​highlight=spanning%20tree%20protocol#​ethernet-switches|Ethernet Switches]]
Line 303: Line 303:
 Pentru rezolvarea temei, trebuie să implementați funcționalitatea unui switch. Va recomandăm să folosiți cel puțin ping pentru a testa implementarea și **Wireshark** pentru depanare și analiză corectitudinii. Punctajul este împărțit în mai multe componente, după cum urmează: Pentru rezolvarea temei, trebuie să implementați funcționalitatea unui switch. Va recomandăm să folosiți cel puțin ping pentru a testa implementarea și **Wireshark** pentru depanare și analiză corectitudinii. Punctajul este împărțit în mai multe componente, după cum urmează:
  
-  * **Procesul de comutare (30p)**. Va trebui ​sa implementați funcționalitatea descrisă ​in secțiunea **Procesul de Comutare**. Pentru acest exercițiu nu este nevoie ​sa implementați funcționalitatea referitoare la VLAN sau STP. Pentru a evita buclele, vom porni doar switch-urile 0 si 1. +  * **Procesul de comutare (30p)**. Va trebui ​să implementați funcționalitatea descrisă ​în secțiunea **Procesul de Comutare**. Pentru acest exercițiu nu este nevoie ​să implementați funcționalitatea referitoare la VLAN sau STP. Pentru a evita buclele, vom porni doar switch-urile 0 și 1. 
-  * **VLAN (30p)**. Vom implementa funcționalitatea de Virtual Local Area Networks (VLANs). Fișierele de configurație ale switch-urilor se găsesc ​in directorul **configs**. Pentru a evita buclele, vom porni doar switch-urile 0 si 1.+  * **VLAN (30p)**. Vom implementa funcționalitatea de Virtual Local Area Networks (VLANs). Fișierele de configurație ale switch-urilor se găsesc ​în directorul **configs**. Pentru a evita buclele, vom porni doar switch-urile 0 si 1.
   * ** STP (40p)**. In acest exercițiu vom introduce si switch-ul 2, care va determina apariția unei bucle. Se cere implementarea protocolului STP simplificat,​ descris in enunț, pentru a evita trimiterea pachetelor la infinit. ​   * ** STP (40p)**. In acest exercițiu vom introduce si switch-ul 2, care va determina apariția unei bucle. Se cere implementarea protocolului STP simplificat,​ descris in enunț, pentru a evita trimiterea pachetelor la infinit. ​
  
Line 312: Line 312:
 </​note>​ </​note>​
  
 +<​note>​
 Puteți scrie implementarea în Python sau C/C++. Daca lucrati in C/C++ va trebui sa schimbati regula de rulare a switch-ului din **Makefile**. Puteți scrie implementarea în Python sau C/C++. Daca lucrati in C/C++ va trebui sa schimbati regula de rulare a switch-ului din **Makefile**.
 </​note>​ </​note>​
Line 374: Line 375:
 </​note>​ </​note>​
 ==== FAQ ==== ==== FAQ ====
 +
 +**Q:** Ce versiune de python ruleaza checker-ul de pe Moodle?
 +
 +**A:​** ​
 +  Python 3.8.10 (Atentie la ce functionalitati folositi)
 +
 +**Q:** Pe Moodle primesc punctaj 0, pe local 100.
 +**A:** Cele mai intalnite probleme sunt faptul ca arhiva trimita nu contine in root-ul ei fisierul switch.py (acesta e intr-un subdirector) sau de la versiune de python rulata pe checker
 +
 +**Q:** Cum știu ce fișier de config sa citesc?
 +
 +**A:** Primul argument pe care îl primește switch-ul la rulare este identificatorul (switch_id = sys.argv[1])
 +
 +**A:** Nu se aplica depunctări pentru coding style
  
 **Q:** Pe local am mai multe puncte decât pe checkerul online **Q:** Pe local am mai multe puncte decât pe checkerul online
Line 417: Line 432:
  
 **A:** Atentie la conceptul de stare. De exemplu, testul `ICMP_0_3_NOT_ARRIVES_2` este rulat in contextul in care si celelalte teste au fost rulate, astfel au fost trimise mai multe ping-uri pana la rularea acestui test. **A:** Atentie la conceptul de stare. De exemplu, testul `ICMP_0_3_NOT_ARRIVES_2` este rulat in contextul in care si celelalte teste au fost rulate, astfel au fost trimise mai multe ping-uri pana la rularea acestui test.
 +
 +In fisierul Dockerfile gasiti imaginea docker folosita pe vmchecker.
 +
 +<code Bash>
 +docker build -f Dockerfile -t tema1 .
 +
 +docker run --privileged -v .:/data/ -it tema1 /bin/bash
 +
 +# Din bash-ul deschis in container rulati vom rula asa:
 +
 +cd /data/
 +ulimit -c 1024
 +/bin/bash -c "​ulimit -c 1024 ; python3 checker/​topo.py tests"
 +
 +# inspectati switch_0_err dupa ce a picat testul cu probleme
 +</​code>​
rl/teme/tema1_sw.1729796716.txt.gz · Last modified: 2024/10/24 22:05 by vlad_andrei.badoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0