#include "kvm/uip.h" | |
int uip_tx_do_ipv4_icmp(struct uip_tx_arg *arg) | |
{ | |
struct uip_ip *ip, *ip2; | |
struct uip_icmp *icmp2; | |
struct uip_buf *buf; | |
buf = uip_buf_clone(arg); | |
icmp2 = (struct uip_icmp *)(buf->eth); | |
ip2 = (struct uip_ip *)(buf->eth); | |
ip = (struct uip_ip *)(arg->eth); | |
ip2->sip = ip->dip; | |
ip2->dip = ip->sip; | |
ip2->csum = 0; | |
/* | |
* ICMP reply: 0 | |
*/ | |
icmp2->type = 0; | |
icmp2->csum = 0; | |
ip2->csum = uip_csum_ip(ip2); | |
icmp2->csum = uip_csum_icmp(icmp2); | |
uip_buf_set_used(arg->info, buf); | |
return 0; | |
} |