diff options
Diffstat (limited to 'VNFs/DPPD-PROX/defaults.h')
-rw-r--r-- | VNFs/DPPD-PROX/defaults.h | 29 |
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_ */ |