Hi, I'm trying to change the IP and port of packets before sending them out. The captured packet in the receiving machines seems to be corrupted as the port is different than the one I inserted. Am I doing the checksum right? And do I need to do other HW configurations?
This is my code: struct udp_hdr *udp_h; struct ipv4_hdr *ipv4_h; struct ether_hdr *eth_hdr; eth_hdr = rte_pktmbuf_mtod(m, struct ether_hdr *); ipv4_h = (struct ipv4_hdr *)(eth_hdr + 1); udp_h = (struct udp_hdr *)((unsigned char *)ipv4_h + sizeof(struct ipv4_hdr)); ipv4_h->dst_addr = 6777226 //(gateway-ip 10.77.0.51) udp_h->src_port = 88 ipv4_h->hdr_checksum = 0; udp_h->dgram_cksum = 0; udp_h->dgram_cksum = rte_ipv4_udptcp_cksum(ipv4_h, udp_h); ipv4_h->hdr_checksum = rte_ipv4_cksum(ipv4_h); l2fwd_simple_forward(m, 0); Thanks, Murad
