Differences

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

Link to this comparison view

so2:teme:tema4 [2019/04/02 21:40]
daniel.baluta [Tema 4 - Transport protocol]
so2:teme:tema4 [2020/05/03 22:28] (current)
constantin.ghioc [Tema 4 - Transport protocol]
Line 4: Line 4:
 ====== Tema 4 - Transport protocol ====== ====== Tema 4 - Transport protocol ======
  
-  * Termen de predare: **Miercuri22 Mai 2019, ora 23:00 **+  * Termen de predare: **Duminică17 Mai 2020, ora 23:00 **
 ===== Obiectivele temei ===== ===== Obiectivele temei =====
  
Line 63: Line 63:
   * pentru restul operațiilor vor trebui folosite stub-urile predefinite în kernel (''​sock_no_*''​)   * pentru restul operațiilor vor trebui folosite stub-urile predefinite în kernel (''​sock_no_*''​)
  
 +<​code>​
 +
 +static const struct proto_ops stp_ops = {
 +        .family = PF_STP,
 +        .owner = THIS_MODULE, ​                                                                                                                        
 +        .release = stp_release,​
 +        .bind = stp_bind,
 +        .connect = stp_connect,​
 +        .socketpair = sock_no_socketpair,​
 +        .accept = sock_no_accept,​
 +        .getname = sock_no_getname,​
 +        .poll = datagram_poll,​
 +        .ioctl = sock_no_ioctl,​
 +        .listen = sock_no_listen,​
 +        .shutdown = sock_no_shutdown,​
 +        .setsockopt = sock_no_setsockopt,​
 +        .getsockopt = sock_no_getsockopt,​
 +        .sendmsg = stp_sendmsg,​
 +        .recvmsg = stp_recvmsg,​
 +        .mmap = sock_no_mmap,​
 +        .sendpage = sock_no_sendpage,​
 +};
 +
 +</​code>​
 Operațiile pe sockeți folosesc un tip de adrese numit ''​sockaddr_stp'',​ tip definit în [[http://​elf.cs.pub.ro/​so2/​res/​teme/​stp.h | header-ul temei]]. Pentru operația de //bind// se vor lua în considerare doar portul și indexul interfeței pe care se bind-uiește socketul. Pentru operația de //receive// se vor completa doar câmpurile ''​addr''​ și ''​port''​ din structură cu adresa MAC a host-ului care a trimis pachetul și cu portul de pe care a fost trimis. De asemenea, la trimiterea unui pachet, host-ul destinație se va obține din câmpurile ''​addr''​ și ''​port''​ ale acestei structuri. Operațiile pe sockeți folosesc un tip de adrese numit ''​sockaddr_stp'',​ tip definit în [[http://​elf.cs.pub.ro/​so2/​res/​teme/​stp.h | header-ul temei]]. Pentru operația de //bind// se vor lua în considerare doar portul și indexul interfeței pe care se bind-uiește socketul. Pentru operația de //receive// se vor completa doar câmpurile ''​addr''​ și ''​port''​ din structură cu adresa MAC a host-ului care a trimis pachetul și cu portul de pe care a fost trimis. De asemenea, la trimiterea unui pachet, host-ul destinație se va obține din câmpurile ''​addr''​ și ''​port''​ ale acestei structuri.
  
Line 84: Line 108:
  
 ===== Testare ===== ===== Testare =====
 +/*
 Pentru simplificarea procesului de corectare a temelor, dar și pentru a reduce greșelile temelor trimise, corectarea temelor se va face automat cu ajutorul unor [[http://​elf.cs.pub.ro/​so2/​res/​teme/​5-stp.zip| teste publice]]. Pentru simplificarea procesului de corectare a temelor, dar și pentru a reduce greșelile temelor trimise, corectarea temelor se va face automat cu ajutorul unor [[http://​elf.cs.pub.ro/​so2/​res/​teme/​5-stp.zip| teste publice]].
 Indicații despre utilizarea suitei de teste se găsesc în fișierul ''​README''​ din cadrul arhivei. Indicații despre utilizarea suitei de teste se găsesc în fișierul ''​README''​ din cadrul arhivei.
 +*/
 +Pentru simplificarea procesului de corectare a temelor, dar și pentru a reduce greșelile temelor trimise, corectarea temelor se va face automat cu ajutorul testelor publice care se găsesc în noua infrastructură. Pentru testarea locală folosiți următoarele comezi:
 +<code bash>
 +$ git clone https://​github.com/​linux-kernel-labs/​linux.git
 +$ cd linux/​tools/​labs
 +$ LABS=assignments/​4-stp make skels 
 +# dezvoltarea temei se va efectua în directorul 4-stp/
 +$ make build
 +$ make copy
 +$ make boot
 +</​code>​
 +
  
 ==== tcpdump ==== ==== tcpdump ====
so2/teme/tema4.1554230443.txt.gz · Last modified: 2019/04/02 21:40 by daniel.baluta
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