aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org>2015-02-27 19:20:01 +0000
committerVenkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org>2015-03-02 11:47:44 +0530
commitbee3aa08a5808691439e42fac8136f6eb16f6f79 (patch)
treeb1896cfbce6f8a66deaa38636dfe948be9d7d664
parent8ba4a34b9614ea7c75d64d1782e1d04703abfe8b (diff)
packet_io: Implement odp_pktio_mtuodp-0.6.1WIP
Signed-off-by: Venkatesh Vivekanandan <venkatesh.vivekanandan@linaro.org>
-rw-r--r--platform/linux-dpdk/odp_packet_io.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/platform/linux-dpdk/odp_packet_io.c b/platform/linux-dpdk/odp_packet_io.c
index 410b07fe0..f9e24fa83 100644
--- a/platform/linux-dpdk/odp_packet_io.c
+++ b/platform/linux-dpdk/odp_packet_io.c
@@ -466,9 +466,27 @@ size_t odp_pktio_mac_addr(odp_pktio_t id, void *mac_addr,
return ETH_ALEN;
}
-int odp_pktio_mtu(odp_pktio_t id ODP_UNUSED)
+int odp_pktio_mtu(odp_pktio_t id)
{
- ODP_UNIMPLEMENTED();
- ODP_ABORT("");
- return 0;
+ pktio_entry_t *entry;
+ int mtu;
+
+ entry = get_entry(id);
+ if (entry == NULL) {
+ ODP_DBG("pktio entry %d does not exist\n", id);
+ return -1;
+ }
+
+ lock_entry(entry);
+
+ if (odp_unlikely(is_free(entry))) {
+ unlock_entry(entry);
+ ODP_DBG("already freed pktio\n");
+ return -1;
+ }
+
+ rte_eth_dev_get_mtu(entry->s.pkt_dpdk.portid , (uint16_t *)&mtu);
+
+ unlock_entry(entry);
+ return mtu;
}