167ba1b25SAsias He #include "kvm/uip.h" 267ba1b25SAsias He 367ba1b25SAsias He int uip_tx_do_ipv4(struct uip_tx_arg *arg) 467ba1b25SAsias He { 567ba1b25SAsias He struct uip_ip *ip; 667ba1b25SAsias He 767ba1b25SAsias He ip = (struct uip_ip *)(arg->eth); 867ba1b25SAsias He 967ba1b25SAsias He if (uip_ip_hdrlen(ip) != 20) { 1067ba1b25SAsias He pr_warning("IP header length is not 20 bytes"); 1167ba1b25SAsias He return -1; 1267ba1b25SAsias He } 1367ba1b25SAsias He 14*0134a2a7SAsias He switch (ip->proto) { 15*0134a2a7SAsias He case 0x01: /* ICMP */ 16*0134a2a7SAsias He uip_tx_do_ipv4_icmp(arg); 17*0134a2a7SAsias He break; 18*0134a2a7SAsias He default: 19*0134a2a7SAsias He break; 20*0134a2a7SAsias He } 21*0134a2a7SAsias He 2267ba1b25SAsias He return 0; 2367ba1b25SAsias He } 24