#include "kvm/uip.h" int uip_tx_do_ipv4(struct uip_tx_arg *arg) { struct uip_ip *ip; ip = (struct uip_ip *)(arg->eth); if (uip_ip_hdrlen(ip) != 20) { pr_warning("IP header length is not 20 bytes"); return -1; } switch (ip->proto) { case UIP_IP_P_ICMP: uip_tx_do_ipv4_icmp(arg); break; case UIP_IP_P_TCP: uip_tx_do_ipv4_tcp(arg); break; case UIP_IP_P_UDP: uip_tx_do_ipv4_udp(arg); break; default: break; } return 0; }