From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8349C461BC for ; Fri, 7 Feb 2025 14:00:59 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0E761410F2; Fri, 7 Feb 2025 14:00:59 +0100 (CET) Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) by mails.dpdk.org (Postfix) with ESMTP id 9C19F40E45 for ; Fri, 7 Feb 2025 14:00:57 +0100 (CET) Received: by mail-oi1-f181.google.com with SMTP id 5614622812f47-3ebb4aae80dso871647b6e.2 for ; Fri, 07 Feb 2025 05:00:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738933257; x=1739538057; darn=dpdk.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=qlP09/KQxW/KKutLyoLlD7p8VAFjcXpLq00K3Rm94uI=; b=SsgUiF4vpW3O08ZAHSB4T56KiauD5dj33qO/Y0Dp/Rg9iiY4FB7SGP6eh9pe5mfqad VT78d7028esCYBWii+M7Gp9tY/37Bokjo1VpwiZjGTvPd38NomrokXgFSVW0NnuIX0bO l1p5MdGeUCBWuIbrUpJibQzh9/u8tgxHg2rwwwuz7rhFi4Gmrwcj+xMr7zDZicYqncur wrH7I7qCPJiabyCDCCvq3iVUHglNFeYn/npUMO5bybwvCeyBU7GrVxo5G1gFmF0NfsXx bUmOAUosMtPvYAr/954UyruhhWLe60HYvY4NvJzZgRyIXelE6M6Swq0JEc9XY4n4099T D37g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738933257; x=1739538057; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=qlP09/KQxW/KKutLyoLlD7p8VAFjcXpLq00K3Rm94uI=; b=VAwprODN4gwX3vC7zSq/h9dmVzhqDp3hN8pZspD9Cui/rDCg+P0ITEFh4CCEXnqkds QywdUkuG4aZs0p1Pon0T53OjspPqL/qqX+XtIY5knl9xFo8H4yRwz7jjWu8Ynn8XKM/I Dhwb6cbyxYNbl6uP/4CFy+IzprrvRr7Uk8kCwl5es4//chhcgWjIhr6UYT4jaXW/5uyk l5RzxWbhdJVb7SN0aVDto/Ft05thoSA/fDxzDnriPROLw/7y4tYLzKjpXMasHcb5Ej3a H/RACwfq91WGgPVAOVtOL2nsyQ/bxaGgF2WViRWub7em3rAtPDKLzF4s91hMSdG9f0Ea 2i/Q== X-Gm-Message-State: AOJu0Yz4X0wPOcAhXPa9WymlAPueLgMe+0rP7kL32ENDn/WTXKkWkbU6 2i48DyFdkqw8jda6mj1DcxfhxeEAb590MeB0R/RzEMG+pv5iK7qNLUFh5yCkonUjIrMPTfPvLkQ u33q0eagRuS+egk1mlVuwksZ9DKr5vhJc X-Gm-Gg: ASbGnct8sHDQd3K8ipFlc2qb+r0OSY5tE8TKsiLqPTdBFpTcCg9NESGKbjl5POBLY86 zggx8+2FnfaiEO+xWvj92hoQeEQoQRkm76R09XwsUOc8rg5pXSDCZfXWO0Y/K/KILuBQX8Gs= X-Google-Smtp-Source: AGHT+IGROjZJW55yXBNOlxPzsPltnBzGA+zS2/XJyQ43cnPdpk7VPTdTw64qbHwR63imMVeQwhQbyAukMg6UeJWCu9g= X-Received: by 2002:a05:6808:38ce:b0:3eb:7235:d176 with SMTP id 5614622812f47-3f39225bf9cmr2132245b6e.14.1738933255034; Fri, 07 Feb 2025 05:00:55 -0800 (PST) MIME-Version: 1.0 From: Alan Beadle Date: Fri, 7 Feb 2025 08:00:44 -0500 X-Gm-Features: AWEUYZlc0qoEK1o_M3oqvcZ0FOh1Svh3yDRpD3S7HXCbRalkipTFhMkE7W5fr-E Message-ID: Subject: UDP Checksum offload with X550-T2 To: users@dpdk.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org Hello, I am trying to enable UDP checksum offload with an Intel X550-T2 NIC with DPDK 23.11. The problem is that the rte_eth_tx_burst() fails when I attempt to send an mbuf which is configured for checksum offload. Here is what i see for this NIC when I run dpdk-devbind.py --status: Network devices using DPDK-compatible driver ============================================ 0000:65:00.1 'Ethernet Controller 10G X550T 1563' drv=vfio-pci unused=uio_pci_generic I have read the following page but it was difficult to tell if anything described there applies in this case. Is what I'm trying to do supported, or not? https://doc.dpdk.org/guides-23.11/nics/ixgbe.html The code was previously working when I was using a software-computed checksum (with rte_ipv4_udptcp_cksum()). Here is the new code I added for offload: // When setting up the port port_conf.txmode.offloads |= RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | RTE_ETH_TX_OFFLOAD_UDP_CKSUM; // When configuring the device if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_CKSUM) || !(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPV4_CKSUM)) { rte_panic(" offload not supported"); }else{ std::cout << "offload supported\n"; } // Before copying the payload into the mbuf pkt->ol_flags = RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_UDP_CKSUM; pkt->l2_len = sizeof(struct rte_ether_hdr); pkt->l3_len = sizeof(struct rte_ipv4_hdr); // Right before the tx_burst() call udp_hdr->dgram_cksum = rte_ipv4_phdr_cksum(ip_hdr, pkt->ol_flags); ip_hdr->hdr_checksum = 0; Please let me know if I am doing anything wrong here. Thank you. -Alan