Am implementat dataplaneul unui router.Cand vine un pachet pe o interfata,verificam daca pachetul este prea mic,apoi comparam cu adr de broadcast si cu macul interfetei si daca nu e niciuna dam drop la pachet. Vedem tipul pachetului si mergem intr una dintre cele 2 functii:pt arp si pt ipv4.Daca pachetul este ipv4 verificam tipul icmp si de asemenea ttl si checksumul.Fiecare tip de icmp are o functie dedicata.in continuare daca avem de dirijat un pachet cautam in tabela de rutare urmatorul hop,si daca exista ii cautam macul in vectorul de structuri adica practic lista de arp.Daca nu avem o intrare acolo pentru ipul cerut dam enqueue la pachet si trimitem un arp req. Daca avem intrarea luam macul si trimitem pachetul. Acum daca vine un arp request trimitem inapoi acelasi pachet doar ca modificat cu macul nostru.Am mers pe rescrierea pachetelor decat pe creearea de la 0 ,desi la icmp setez toate campurile manual.