From bf7cb6239f904b4351d55e30db9c2ee0e1ebe772 Mon Sep 17 00:00:00 2001 From: Kiran KN Date: Tue, 7 Jun 2016 11:29:11 -0700 Subject: [PATCH] DPDK: Set MTU of bonded interfaces as one of the slave's MTU in rte_eth_dev structure Change-Id: I85b8b46ee0608f2e0d089dfa2905911c3560151e Closes-Bug: 1579243 --- dpdk/vr_dpdk_ethdev.c | 5 +++++ dpdk/vr_dpdk_knidev.c | 1 + 2 files changed, 6 insertions(+) diff --git a/dpdk/vr_dpdk_ethdev.c b/dpdk/vr_dpdk_ethdev.c index 3dbe99ab3..4ce0ec4d5 100644 --- a/dpdk/vr_dpdk_ethdev.c +++ b/dpdk/vr_dpdk_ethdev.c @@ -583,6 +583,7 @@ dpdk_ethdev_bond_info_update(struct vr_dpdk_ethdev *ethdev) { int i, slave_port_id; int port_id = ethdev->ethdev_port_id; + uint16_t mtu = 0; struct rte_pci_addr *pci_addr; struct ether_addr bond_mac, mac_addr; struct ether_addr lacp_mac = { .addr_bytes = {0x01, 0x80, 0xc2, 0, 0, 0x02} }; @@ -601,6 +602,10 @@ dpdk_ethdev_bond_info_update(struct vr_dpdk_ethdev *ethdev) /* log out and configure bond members */ for (i = 0; i < ethdev->ethdev_nb_slaves; i++) { slave_port_id = ethdev->ethdev_slaves[i]; + if (!rte_eth_devices[port_id].data->mtu) { + rte_eth_dev_get_mtu(slave_port_id, &mtu); + rte_eth_devices[port_id].data->mtu = mtu; + } memset(&mac_addr, 0, sizeof(mac_addr)); rte_eth_macaddr_get(slave_port_id, &mac_addr); pci_addr = &rte_eth_devices[slave_port_id].pci_dev->addr; diff --git a/dpdk/vr_dpdk_knidev.c b/dpdk/vr_dpdk_knidev.c index a8c125442..81641aeff 100644 --- a/dpdk/vr_dpdk_knidev.c +++ b/dpdk/vr_dpdk_knidev.c @@ -474,6 +474,7 @@ dpdk_knidev_change_mtu(uint8_t port_id, unsigned new_mtu) RTE_LOG(INFO, VROUTER, "Changing bond eth device %" PRIu8 " MTU\n", ethdev->ethdev_port_id); + rte_eth_devices[ethdev->ethdev_port_id].data->mtu = new_mtu; for (i = 0; i < ethdev->ethdev_nb_slaves; i++) { slave_port_id = ethdev->ethdev_slaves[i]; RTE_LOG(INFO, VROUTER,