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