From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1D4DCA04DC for ; Mon, 19 Oct 2020 12:35:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F11C6C9E0; Mon, 19 Oct 2020 12:35:23 +0200 (CEST) Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by dpdk.org (Postfix) with ESMTP id 72BE3C9DE for ; Mon, 19 Oct 2020 12:35:22 +0200 (CEST) Received: by mail-pg1-f173.google.com with SMTP id b23so5781639pgb.3 for ; Mon, 19 Oct 2020 03:35:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=5GtVZ20gCzxqU9syElIP2xc06vXpLWmr2Lro0oZsxeE=; b=WgJiZdSofytlNGqCOLm7/Eh+BadTtElf5eqAsKBRc+DPpJN+aU3TA9Fr2kEifjF0Yi +T9u1+hyE7CQfS1dfOxYFLHwOUm+wMY15o8YR4MYAwOKLzeCL+pv4bSPNaPnVLTchEs1 vqRyx9321e5lSXrEvd0x5wtz5O2apg43Vzv7htpRbOwBOs86/0Lpj5t4SS7OTg2APd1j dOfY4SOhpP+QDVbEkh5mpDIYETfoMflhGBLGUKJCJ3iY1fe5hANZoUDjE7tJ9a7+Xp4s 42kBtFQ79BMnDCDVbWdvKOGVscTJsk9bhV6mPBouS1vqzYG9VZXo5UEwGVUCAud9DuR+ h19Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=5GtVZ20gCzxqU9syElIP2xc06vXpLWmr2Lro0oZsxeE=; b=dzHwo3N25Su1v5Or6/jcfZbCEuJzocNOdb5vCoYlJ+ruCGtsGO3B2CbR0qcYdUkzdd uOyjxM6fuxj98dkmPV+6kVSqjLeniPl2lfQmUctnuoACo6iTsIYO6s5XlDfqgg3LYV+k 6Zuq6M3TE78pBqynY/SDvy8BG8O2+wn7JLZkWPZx2StpQnCmvO4LHYXCK8T0slMQQ8BA fF5IPUJ5FDmiAgN/fOaXKR2s3QP2+8PCNpkksMzzTeWlshNLiTiECXd+BLBU9unX8VDc imVYnUeEx4jZfqfGbH+tP6gGue97HHfaMzYDU0bBkOX5YdV/vEF8503VHIJd8lkh9tWT wqNA== X-Gm-Message-State: AOAM532uFLlkFvZTZBSCrZgT2LWFbHh4P+zuQCaViEXKIcLa2ATcqs4C bFtOMUqz9ZXDGGVeDmZZf+zSSsIT3ilYO6/SWHBbTqoQn+/xcw== X-Google-Smtp-Source: ABdhPJwkBs4+PSuyjBHB6Qti2RIrAhydjfvAvfbw1LcKDIZ31+pZlMJrcLfFSFoUZ98KlmEAwRKKqaXXzoStOPd96zU= X-Received: by 2002:a63:5a0a:: with SMTP id o10mr13318873pgb.77.1603103720378; Mon, 19 Oct 2020 03:35:20 -0700 (PDT) MIME-Version: 1.0 From: Nirmal R Date: Mon, 19 Oct 2020 12:35:10 +0200 Message-ID: To: users@dpdk.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-users] DPDK: IP reassemble segmentation fault for rte_ip_frag_table_create. X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org Sender: "users" Hello, I am new to DPDK and writing the code in c++ language, currently working on IP reassembling the packets below is my sample code which is giving me segmentation fault for rte_ip_frag_table_create, I am unable to debug the issue. Much appreciated if someone can explain to me where did I go wrong and how to do it in a proper manner. At the moment I am finding it difficult. Thanks in advance. #define BUFFER_RING_SIZE 65536 #define BUFFER_LENGTH 1500 #define POOL_SIZE 8192 #define POOL_CACHE_SIZE 256 #define DEF_FLOW_NUM 0x1000 #define DEF_FLOW_TTL MS_PER_S #define IP_FRAG_TBL_BUCKET_ENTRIES 4 static uint32_t max_flow_num = DEF_FLOW_NUM; static uint32_t max_flow_ttl = DEF_FLOW_TTL; #define RTE_LOGTYPE_IP_RSMBL RTE_LOGTYPE_USER1 struct lcore_queue_conf { struct rte_ip_frag_tbl *frag_tbl; struct rte_ip_frag_death_row death_row; } __rte_cache_aligned; static inline int setup_queue_tbl(struct lcore_queue_conf *qconf) { uint64_t frag_cycles = (rte_get_tsc_hz() + MS_PER_S - 1) / MS_PER_S * max_flow_ttl; qconf->frag_tbl = rte_ip_frag_table_create(max_flow_num, IP_FRAG_TBL_BUCKET_ENTRIES, max_flow_num, frag_cycles, rte_socket_id()); if((qconf->frag_tbl) == NULL){ RTE_LOG(ERR, IP_RSMBL, "Table Failed."); return -1; } return 0; } static int lcore_main() { struct lcore_queue_conf *qconf; if(setup_queue_tbl(qconf) != 0) rte_exit(EXIT_FAILURE, "%s\n", rte_strerror(rte_errno)); . . . . } int main(int argc, char *argv[]) { struct rte_mempool *mbuf_pool; struct rte_ring *ring; uint16_t portcheck; /* catch ctrl-c so we can print on exit */ signal(SIGINT, int_handler); /* EAL setup */ ret=rte_eal_init(argc, argv); cout << "=====================================================" << endl; if(ret < 0) cout << EAL initialising failed." << strerror(-ret) << endl; else cout << EAL initialisation success." << endl; /* Mempool creation */ mbuf_pool=rte_pktmbuf_pool_create("BUFFER", POOL_SIZE, POOL_CACHE_SIZE, 0, RTE_MBUF_DEFAULT_BUF_SIZE, rte_socket_id()); if(mbuf_pool== NULL) rte_exit(EXIT_FAILURE, "%s\n", rte_strerror(rte_errno)); . . . . /* Master core call */ lcore_main(); return 0; } EAL: Detected 12 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: Probing VFIO support... EAL: VFIO support initialized EAL: Invalid NUMA socket, default to 0 EAL: Invalid NUMA socket, default to 0 EAL: using IOMMU type 1 (Type 1) EAL: Probe PCI driver: net_ixgbe (8086:15d1) device: 0000:01:00.0 (socket 0) EAL: Invalid NUMA socket, default to 0 EAL: No legacy callbacks, legacy socket not created ===================================================== EAL initialisation success. PORT 0: Ethernet configuration success. TX queue configuration success. RX queue configuration success. PORT 0: NIC started successfully. PORT 0: Enabled promiscuous mode. MAC Addr b4:96:91:3f:21:b6 ===================================================== USER1: rte_ip_frag_table_create: allocated of 6291584 bytes at socket 0 Segmentation fault With Regards, Nirmal.