From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f44.google.com (mail-lf0-f44.google.com [209.85.215.44]) by dpdk.org (Postfix) with ESMTP id 48F682E83 for ; Sat, 9 Apr 2016 20:41:25 +0200 (CEST) Received: by mail-lf0-f44.google.com with SMTP id e190so110443140lfe.0 for ; Sat, 09 Apr 2016 11:41:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=7Lz4PjMeDrtb+3cXt1c7nGd2FkwcX63JD0JHLaKNwTY=; b=kVjrf7kVCfS97/HXz2hvGYB8/itoN3qcJQj4FUWzIBpAvY3d/UDDlcAvPVhPt5gqah nBf04arJsfkHhcff4LnmhmM90crP61H+LIMg/t298Une3n8ZSzRdqqSiBiXMlZORmdF8 6GBjsxs3/+dsTSnqcxoZ+uOlKfmJz4REX0ghz+iSl876k3ac4NJ4rXjYeDDQ8YG099ZF MovbpRf5w9a0ExoMKLSG9OwByURHpDwVNqHSyWNMNM1GIqVcKNFzjA41PapAhckEJezZ ZasHMD5D7pHN8o14fgUzocOmNu5pYF6Jdm1AGn4HQbtv7BevXdZG0+HdNuYrS3aa6rGG AxFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=7Lz4PjMeDrtb+3cXt1c7nGd2FkwcX63JD0JHLaKNwTY=; b=iOV2mcj+X+R+dApDQpu7si7z3kDi7ars/2KnazqtiXTs2VOPrZZlwtosgjpt24rljd cCFFWtXmQgxkZ5WWDBLrjHrgQhMDkLxYUbK1F4eubGbjsqnRpMokWMgBk0OTjIeCBBGA VeRkZE2NfH0z6GhIS1aNOd5LetJ6jXOOA7gK3R6WvtMZEp3ftA3zjTIvH2RsyME37hXb Jhqs0Xq/drmi5Uy1IMvJY7MRUnMSdXtBOp9PR2l/BZjnjIBwzUmaDjxvQybTDUXNjvYf TH/vilVB9qmRR5mHg162MF1wflgCKxAiK5koghiOKwi44Q+93VQWiYXGoG1l0dUTdMHY d3/w== X-Gm-Message-State: AD7BkJLKIe/ZhAC6gdskqw2IMkkWBuf+ojC6J+3q15TB+jXLZb156M3Bdm9v1mS0/9Pd5JRYYkkMMy7oVImxEg== MIME-Version: 1.0 X-Received: by 10.25.136.139 with SMTP id k133mr5789319lfd.157.1460227284860; Sat, 09 Apr 2016 11:41:24 -0700 (PDT) Received: by 10.25.22.194 with HTTP; Sat, 9 Apr 2016 11:41:24 -0700 (PDT) In-Reply-To: References: Date: Sat, 9 Apr 2016 20:41:24 +0200 Message-ID: From: Jesper Wramberg To: Murad Kablan Cc: users Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-users] How to change IP and port in packet header and recalculate checksum X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Apr 2016 18:41:25 -0000 Assuming you are working on a standard Intel architecture or alike, the constants you write are stored in little endian. Network byte order is big endian, so for the UDP port (which is 16 bit large) your code would be: udp_h->src_port = rte_cpu_to_be_16(88); Unless you actually want the port to be read as 22528 by the receiver ;-) Check out the DPDK byte order API for your other constants. 2016-04-09 17:36 GMT+02:00 Murad Kablan : > Hi Jesper, > I'm not running DPDK on the receiving side. Just tcpdump. > Can you please be more specific? What and how to convert to network byte > order? > > Thanks > On Apr 9, 2016 7:45 AM, "Jesper Wramberg" > wrote: > >> Hey Murad, >> >> Are you running DPDK on the receiving end as well ? >> In any case, I'm guessing you forgot to convert to network byte order ? >> :-) >> >> >> >> 2016-04-09 12:34 GMT+02:00 Murad Kablan : >> >>> 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 >>> >> >>