1 #include "kvm/uip.h" 2 uip_tx_do_ipv4_icmp(struct uip_tx_arg * arg)3int uip_tx_do_ipv4_icmp(struct uip_tx_arg *arg) 4 { 5 struct uip_ip *ip, *ip2; 6 struct uip_icmp *icmp2; 7 struct uip_buf *buf; 8 9 buf = uip_buf_clone(arg); 10 11 icmp2 = (struct uip_icmp *)(buf->eth); 12 ip2 = (struct uip_ip *)(buf->eth); 13 ip = (struct uip_ip *)(arg->eth); 14 15 ip2->sip = ip->dip; 16 ip2->dip = ip->sip; 17 ip2->csum = 0; 18 /* 19 * ICMP reply: 0 20 */ 21 icmp2->type = 0; 22 icmp2->csum = 0; 23 ip2->csum = uip_csum_ip(ip2); 24 icmp2->csum = uip_csum_icmp(icmp2); 25 26 uip_buf_set_used(arg->info, buf); 27 28 return 0; 29 } 30