blob: 58373fd022e0b89114384b33dd469950b33c8bdd [file] [log] [blame] [edit]
#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;
}