mirror of
https://github.com/openvswitch/ovs
synced 2025-09-05 08:45:23 +00:00
dpdk: Update to use DPDK 19.11.
This commit adds support for DPDK v19.11, it includes the following changes. 1. travis: Enable compilation and linkage with dpdk 19.11. 2. sparse: Remove dpdk network headers copies. https://patchwork.ozlabs.org/patch/1185256/ 3. dpdk: Migrate to new PDUMP API. https://patchwork.ozlabs.org/patch/1192971/ 4. netdev-dpdk: Prefix network structures with rte_. https://patchwork.ozlabs.org/patch/1109733/ 5. netdev-dpdk: Update by new color definitions. https://patchwork.ozlabs.org/patch/1086089/ 6. docs: Update docs to reference 19.11. 7. docs: Add note regarding hotplug and igb_uio requirements. For credit all authors of the original commits to 'dpdk-latest' with the above changes been added as co-authors for this commmit. Signed-off-by: David Marchand <david.marchand@redhat.com> Co-authored-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org> Co-authored-by: Ilya Maximets <i.maximets@ovn.org> Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Co-authored-by: Ophir Munk <ophirmu@mellanox.com> Reviewed-by: David Marchand <david.marchand@redhat.com> Acked-by: Ilya Maximets <i.maximets@ovn.org> Acked-by: Kevin Traynor <ktraynor@redhat.com> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
This commit is contained in:
@@ -86,12 +86,13 @@ COVERAGE_DEFINE(vhost_tx_contention);
|
||||
* The minimum mbuf size is limited to avoid scatter behaviour and drop in
|
||||
* performance for standard Ethernet MTU.
|
||||
*/
|
||||
#define ETHER_HDR_MAX_LEN (ETHER_HDR_LEN + ETHER_CRC_LEN \
|
||||
#define ETHER_HDR_MAX_LEN (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN \
|
||||
+ (2 * VLAN_HEADER_LEN))
|
||||
#define MTU_TO_FRAME_LEN(mtu) ((mtu) + ETHER_HDR_LEN + ETHER_CRC_LEN)
|
||||
#define MTU_TO_FRAME_LEN(mtu) ((mtu) + RTE_ETHER_HDR_LEN + \
|
||||
RTE_ETHER_CRC_LEN)
|
||||
#define MTU_TO_MAX_FRAME_LEN(mtu) ((mtu) + ETHER_HDR_MAX_LEN)
|
||||
#define FRAME_LEN_TO_MTU(frame_len) ((frame_len) \
|
||||
- ETHER_HDR_LEN - ETHER_CRC_LEN)
|
||||
- RTE_ETHER_HDR_LEN - RTE_ETHER_CRC_LEN)
|
||||
#define NETDEV_DPDK_MBUF_ALIGN 1024
|
||||
#define NETDEV_DPDK_MAX_PKT_LEN 9728
|
||||
|
||||
@@ -602,7 +603,7 @@ dpdk_calculate_mbufs(struct netdev_dpdk *dev, int mtu, bool per_port_mp)
|
||||
* can change dynamically at runtime. For now, use this rough
|
||||
* heurisitic.
|
||||
*/
|
||||
if (mtu >= ETHER_MTU) {
|
||||
if (mtu >= RTE_ETHER_MTU) {
|
||||
n_mbufs = MAX_NB_MBUF;
|
||||
} else {
|
||||
n_mbufs = MIN_NB_MBUF;
|
||||
@@ -917,7 +918,7 @@ dpdk_eth_dev_port_config(struct netdev_dpdk *dev, int n_rxq, int n_txq)
|
||||
* scatter to support jumbo RX.
|
||||
* Setting scatter for the device is done after checking for
|
||||
* scatter support in the device capabilites. */
|
||||
if (dev->mtu > ETHER_MTU) {
|
||||
if (dev->mtu > RTE_ETHER_MTU) {
|
||||
if (dev->hw_ol_features & NETDEV_RX_HW_SCATTER) {
|
||||
conf.rxmode.offloads |= DEV_RX_OFFLOAD_SCATTER;
|
||||
}
|
||||
@@ -1029,7 +1030,7 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
|
||||
{
|
||||
struct rte_pktmbuf_pool_private *mbp_priv;
|
||||
struct rte_eth_dev_info info;
|
||||
struct ether_addr eth_addr;
|
||||
struct rte_ether_addr eth_addr;
|
||||
int diag;
|
||||
int n_rxq, n_txq;
|
||||
uint32_t rx_chksm_offload_capa = DEV_RX_OFFLOAD_UDP_CKSUM |
|
||||
@@ -1154,7 +1155,7 @@ common_construct(struct netdev *netdev, dpdk_port_t port_no,
|
||||
dev->port_id = port_no;
|
||||
dev->type = type;
|
||||
dev->flags = 0;
|
||||
dev->requested_mtu = ETHER_MTU;
|
||||
dev->requested_mtu = RTE_ETHER_MTU;
|
||||
dev->max_packet_len = MTU_TO_FRAME_LEN(dev->mtu);
|
||||
dev->requested_lsc_interrupt_mode = 0;
|
||||
ovsrcu_index_init(&dev->vid, -1);
|
||||
@@ -1683,7 +1684,7 @@ netdev_dpdk_get_port_by_mac(const char *mac_str)
|
||||
}
|
||||
|
||||
RTE_ETH_FOREACH_DEV (port_id) {
|
||||
struct ether_addr ea;
|
||||
struct rte_ether_addr ea;
|
||||
|
||||
rte_eth_macaddr_get(port_id, &ea);
|
||||
memcpy(port_mac.ea, ea.addr_bytes, ETH_ADDR_LEN);
|
||||
@@ -2086,10 +2087,10 @@ netdev_dpdk_policer_pkt_handle(struct rte_meter_srtcm *meter,
|
||||
struct rte_meter_srtcm_profile *profile,
|
||||
struct rte_mbuf *pkt, uint64_t time)
|
||||
{
|
||||
uint32_t pkt_len = rte_pktmbuf_pkt_len(pkt) - sizeof(struct ether_hdr);
|
||||
uint32_t pkt_len = rte_pktmbuf_pkt_len(pkt) - sizeof(struct rte_ether_hdr);
|
||||
|
||||
return rte_meter_srtcm_color_blind_check(meter, profile, time, pkt_len) ==
|
||||
e_RTE_METER_GREEN;
|
||||
RTE_COLOR_GREEN;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -2675,7 +2676,7 @@ netdev_dpdk_set_mtu(struct netdev *netdev, int mtu)
|
||||
* a method to retrieve the upper bound MTU for a given device.
|
||||
*/
|
||||
if (MTU_TO_MAX_FRAME_LEN(mtu) > NETDEV_DPDK_MAX_PKT_LEN
|
||||
|| mtu < ETHER_MIN_MTU) {
|
||||
|| mtu < RTE_ETHER_MIN_MTU) {
|
||||
VLOG_WARN("%s: unsupported MTU %d\n", dev->up.name, mtu);
|
||||
return EINVAL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user