summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/defaults.h
diff options
context:
space:
mode:
Diffstat (limited to 'VNFs/DPPD-PROX/defaults.h')
-rw-r--r--VNFs/DPPD-PROX/defaults.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/VNFs/DPPD-PROX/defaults.h b/VNFs/DPPD-PROX/defaults.h
index 573cc9c5..69017710 100644
--- a/VNFs/DPPD-PROX/defaults.h
+++ b/VNFs/DPPD-PROX/defaults.h
@@ -1,5 +1,5 @@
/*
-// Copyright (c) 2010-2017 Intel Corporation
+// Copyright (c) 2010-2020 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
#define _DEFAULTS_H_
#include <rte_ether.h>
+#include "prox_compat.h"
struct prox_cfg;
struct lcore_cfg;
@@ -26,9 +27,11 @@ void set_global_defaults(struct prox_cfg* prox_cfg);
void set_task_defaults(struct prox_cfg* prox_cfg, struct lcore_cfg* lcore_cfg_init);
void set_port_defaults(void);
+#define MAX_PKT_SIZE 10000
#define MAX_PKT_BURST 64
#define MAX_RING_BURST 64
-#define DUMP_PKT_LEN 128
+#define DUMP_PKT_LEN MAX_PKT_SIZE
+#define MAX_IMIX_PKTS 128
#if MAX_RING_BURST < MAX_PKT_BURST
#error MAX_RING_BURST < MAX_PKT_BURST
@@ -40,8 +43,26 @@ void set_port_defaults(void);
#define MAX_RSS_QUEUE_BITS 9
#define PROX_VLAN_TAG_SIZE 4
-#define MBUF_SIZE (ETHER_MAX_LEN + (unsigned)sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM + 2 * PROX_VLAN_TAG_SIZE)
-#define PROX_MTU ETHER_MAX_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN
+/* MBUF_SIZE can be configured based on the following:
+ - If only one segment is used ETH_TXQ_FLAGS_NOMULTSEGS can be used resulting
+ in vector mode used for transmission hence higher performance
+ - Only one segment is used by the rx function if the mbuf size is big enough
+ - Bigger mbufs result in more memory used, hence slighly lower performance (DTLB misses)
+ - Selecting the smaller mbuf is not obvious as pmds might behave slighly differently:
+ - on ixgbe a 1526 + 256 mbuf size will cause any packets bigger than 1024 bytes to be segmented
+ - on i40e a 1526 + 256 mbuf size will cause any packets bigger than 1408 bytes to be segmented
+ - other pmds might have additional requirements
+ As the performance decrease due to the usage of bigger mbuf is not very important, we prefer
+ here to use the same, bigger, mbuf size for all pmds, making the code easier to support.
+ An mbuf size of 2048 + 128 + 128 + 8 can hold a 2048 packet, and only one segment will be used
+ except if jumbo frames are enabled. +8 (VLAN) is needed for i40e (and maybe other pmds).
+ TX_MBUF_SIZE is used for when transmitting only: in this case the mbuf size can be smaller.
+*/
+#define MBUF_SIZE (2048 + (unsigned)sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM + 2 * PROX_VLAN_TAG_SIZE)
+#define TX_MBUF_SIZE (PROX_RTE_ETHER_MAX_LEN + (unsigned)sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM + 2 * PROX_VLAN_TAG_SIZE)
+
+#define PROX_MTU PROX_RTE_ETHER_MAX_LEN - PROX_RTE_ETHER_HDR_LEN - PROX_RTE_ETHER_CRC_LEN
+#define NO_VDEV_PORT 0xFF
#endif /* _DEFAULTS_H_ */