summaryrefslogtreecommitdiffstats
path: root/VNFs/DPPD-PROX/prox_port_cfg.h
diff options
context:
space:
mode:
authorXavier Simonart <xavier.simonart@intel.com>2020-04-20 23:25:22 +0200
committerXavier Simonart <xavier.simonart@intel.com>2020-05-29 23:28:44 +0200
commitfa869940dd9bb459ac599fe80c26c9d3e720fd31 (patch)
tree67aefe7f36fad283ab690d5d0feae1a547a59487 /VNFs/DPPD-PROX/prox_port_cfg.h
parent6f898f1c73d630bf6e5e75ba1b30d261c8301d2a (diff)
Add support for vdev tap devices
This commit adds support for the creation of tap devices. To create a tap device, and associate it with a DPDK port, add within the port section: vdev=<tap_name> local ipv4=<ip_assigned_to_port> <tap_name> will appear as a kernel network device, with an IP <ip_assigned_to_port> ARP packets received from the network on the DPDK interface will be forwarded to the kernel. 1st packet which needs to be generated to a new IP will cause an IP packet to be sent to the kernel (using socket sendto) forcing the kernel to send an ARP_REQUEST. In this commit, there is no notification from the kernel about ARP table changes. This is subject to further commits. Two config files, gen_tap.cfg and swap_tap.cfg have been created. They work one against each other. *** Note however that they do not work if running within the same host (with the port being connected back to back) *** This is due to the fact that the kernel would bypass the ports and use local interface... Change-Id: Iadeec0d99e3c693472ea44bdb9163a3bf97df2fa Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
Diffstat (limited to 'VNFs/DPPD-PROX/prox_port_cfg.h')
-rw-r--r--VNFs/DPPD-PROX/prox_port_cfg.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/VNFs/DPPD-PROX/prox_port_cfg.h b/VNFs/DPPD-PROX/prox_port_cfg.h
index 9a252c16..d6090a35 100644
--- a/VNFs/DPPD-PROX/prox_port_cfg.h
+++ b/VNFs/DPPD-PROX/prox_port_cfg.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.
@@ -56,6 +56,7 @@ struct prox_port_cfg {
enum addr_type type;
prox_rte_ether_addr eth_addr; /* port MAC address */
char name[MAX_NAME_SIZE];
+ char vdev[MAX_NAME_SIZE];
char short_name[MAX_NAME_SIZE];
char driver_name[MAX_NAME_SIZE];
char rx_ring[MAX_NAME_SIZE];
@@ -79,6 +80,9 @@ struct prox_port_cfg {
uint16_t max_tx_desc;
uint32_t nb_mc_addr;
prox_rte_ether_addr mc_addr[NB_MCAST_ADDR];
+ int dpdk_mapping;
+ uint32_t ip;
+ int fd;
};
extern rte_atomic32_t lsc;