summaryrefslogtreecommitdiffstats
path: root/linux_dpdk
diff options
context:
space:
mode:
authorDan Klein <danklein10@gmail.com>2016-01-04 23:31:31 +0200
committerDan Klein <danklein10@gmail.com>2016-01-04 23:31:31 +0200
commit629b54c4c9df9c718d818a004ecf15c2cf6c770a (patch)
tree7dfc3c64c7561032d690ce6188130e80d344054e /linux_dpdk
parent3757099103ed1bf56f85ccf5bb861a331287cbbb (diff)
parent857bdcf05a920b99e1cf180c700176b04801da00 (diff)
Merge branch 'master' into dan_stateless
Diffstat (limited to 'linux_dpdk')
-rw-r--r--linux_dpdk/bcov32
-rw-r--r--linux_dpdk/c_dumbpreproc.py61
-rw-r--r--linux_dpdk/cov.py141
-rw-r--r--linux_dpdk/d2
-rwxr-xr-xlinux_dpdk/ws_main.py443
5 files changed, 481 insertions, 198 deletions
diff --git a/linux_dpdk/bcov b/linux_dpdk/bcov
new file mode 100644
index 00000000..7eb76fa7
--- /dev/null
+++ b/linux_dpdk/bcov
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# if no variable of $PYTHON is define - we try to find it
+function find_python {
+ # two candidates - machine python and cisco linux python
+ MACHINE_PYTHON=python
+ CEL_PYTHON=/router/bin/python
+
+ # try the machine python
+ PYTHON=$MACHINE_PYTHON
+
+ PCHECK=`$PYTHON -c "import sys; ver = sys.version_info[0] * 10 + sys.version_info[1];sys.exit(ver < 27)"`
+ if [ $? -ne 0 ]; then
+ PYTHON=$CEL_PYTHON
+ PCHECK=`$PYTHON -c "import sys; ver = sys.version_info[0] * 10 + sys.version_info[1];sys.exit(ver < 27)"`
+
+ if [ $? -ne 0 ]; then
+ echo "*** $PYTHON - python version is too old, 2.7 at least is required"
+ exit -1
+ fi
+
+ fi
+
+}
+
+if [ -z "$PYTHON" ]; then
+ find_python
+fi
+
+$PYTHON cov.py $@
+
+
diff --git a/linux_dpdk/c_dumbpreproc.py b/linux_dpdk/c_dumbpreproc.py
new file mode 100644
index 00000000..9dc60155
--- /dev/null
+++ b/linux_dpdk/c_dumbpreproc.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2006-2010 (ita)
+
+"""
+Dumb C/C++ preprocessor for finding dependencies
+
+It will look at all include files it can find after removing the comments, so the following
+will always add the dependency on both "a.h" and "b.h"::
+
+ #include "a.h"
+ #ifdef B
+ #include "b.h"
+ #endif
+ int main() {
+ return 0;
+ }
+
+To use::
+
+ def configure(conf):
+ conf.load('compiler_c')
+ conf.load('c_dumbpreproc')
+"""
+
+import re, sys, os, string, traceback
+from waflib import Logs, Build, Utils, Errors
+from waflib.Logs import debug, error
+from waflib.Tools import c_preproc
+
+re_inc = re.compile(
+ '^[ \t]*(#|%:)[ \t]*(include)[ \t]*[<"](.*)[>"][\r\t ]*$',
+ re.IGNORECASE | re.MULTILINE)
+
+def lines_includes(node):
+ code = node.read()
+ if c_preproc.use_trigraphs:
+ for (a, b) in c_preproc.trig_def: code = code.split(a).join(b)
+ code = c_preproc.re_nl.sub('', code)
+ code = c_preproc.re_cpp.sub(c_preproc.repl, code)
+ return [(m.group(2), m.group(3)) for m in re.finditer(re_inc, code)]
+
+parser = c_preproc.c_parser
+class dumb_parser(parser):
+ def addlines(self, node):
+ if node in self.nodes[:-1]:
+ return
+ self.currentnode_stack.append(node.parent)
+ self.lines = lines_includes(node) + [(c_preproc.POPFILE, '')] + self.lines
+
+ def start(self, node, env):
+ self.addlines(node)
+ while self.lines:
+ (x, y) = self.lines.pop(0)
+ if x == c_preproc.POPFILE:
+ self.currentnode_stack.pop()
+ continue
+ self.tryfind(y)
+
+c_preproc.c_parser = dumb_parser
+
diff --git a/linux_dpdk/cov.py b/linux_dpdk/cov.py
new file mode 100644
index 00000000..27578f4b
--- /dev/null
+++ b/linux_dpdk/cov.py
@@ -0,0 +1,141 @@
+# hhaim 2015
+import sys
+import os
+import argparse;
+import uuid
+import urllib2
+
+
+
+H_COV_VER = "0.0.1"
+
+class cov_driver(object):
+ args=None;
+
+
+BUILD_NUM_FILE = "../VERSION"
+
+COV_FILE_OUT = 'trex-64.bz2'
+
+#'http://www.python.org/'
+def check_url_is_valid (url):
+ try:
+ f = urllib2.urlopen(url)
+ f.read()
+ return 0
+ except :
+ return -1
+
+
+def get_build_num ():
+ s='';
+ if os.path.isfile(BUILD_NUM_FILE):
+ f=open(BUILD_NUM_FILE,'r');
+ s+=f.readline().rstrip();
+ f.close();
+ return s;
+
+def get_build_num_dis ():
+ return get_build_num ()+ "-"+str(uuid.uuid1())
+
+
+def process_options ():
+ parser = argparse.ArgumentParser(usage="""
+ cov -b # build sa
+ cov -u #upload sa
+ """,
+ description="sa utility ",
+ epilog=" written by hhaim");
+
+
+ parser.add_argument('-b', action='store_true',
+ help='build ')
+ parser.add_argument('-u', action='store_true',
+ help='upload ')
+ parser.add_argument('-nc', action='store_true',
+ help='build without clean ')
+
+ parser.add_argument('--version', action='version',
+ version=H_COV_VER )
+
+ cov_driver.args = parser.parse_args();
+
+
+
+
+def run_cmd (cmd,is_exception=True):
+ print "run cmd '%s'" % (cmd)
+ res=os.system(cmd);
+ if is_exception and (res !=0):
+ s= "ERORR cmd return error !";
+ raise Exception(s);
+ else:
+ print "OK"
+
+
+def run_build (is_clean):
+ clean_str = ""
+ if is_clean :
+ clean_str = "clean"
+ cov_build_cmd = cov_driver.tool_path+"cov-analysis-linux64-7.7.0.4/bin/cov-build --dir cov-int ./b %s build --target=_t-rex-64" % (clean_str);
+ run_cmd(cov_build_cmd);
+ if os.path.isfile(COV_FILE_OUT) :
+ run_cmd(('rm %s' % COV_FILE_OUT));
+ run_cmd("tar caf %s cov-int" % COV_FILE_OUT);
+
+def upload ():
+ if not os.path.isfile(COV_FILE_OUT) :
+ s="ERROR file %s does not exit try to build it " % (COV_FILE_OUT);
+ raise Exception (s)
+ if check_url_is_valid ('http://www.google.com/')<0:
+ s="ERROR, You are under firewall, try from another build server";
+ raise Exception (s)
+
+ ver=get_build_num_dis ()
+ cmd='curl --form token=fRIZZCAGD9TnkSiuxXiEAQ --form email='+cov_driver.user_name+'@cisco.com --form file=@./'+COV_FILE_OUT+' --form version="'+ver+'" --form description="'+ver+'" https://scan.coverity.com/builds?project=cisco-system-traffic-generator%2Ftrex-core'
+ run_cmd(cmd);
+ print "You should get an email with the results"
+ print "or visit http://scan.coverity.com/projects/cisco-system-traffic-generator-trex-core?tab=overview"
+
+def check_env (env,err):
+ if os.environ.has_key(env) == False :
+ s= "ERROR you should define %s, %s" % (env,err)
+ raise Exception(s);
+
+
+def main_cov ():
+ args=cov_driver.args
+
+ # default nothing was given
+ if args.b == False and args.u == False :
+ run_build (True)
+ upload ()
+
+ if args.b :
+ is_clean = not args.nc
+ run_build (is_clean)
+
+ if args.u:
+ upload ()
+
+
+def main ():
+ try:
+ check_env ('NBAR_ENV',"should defined to the tools path")
+ check_env ('USER',"should be defined as your user name")
+
+ cov_driver.tool_path=os.environ['NBAR_ENV']
+ cov_driver.user_name=os.environ['USER']
+ process_options ()
+ main_cov ()
+ exit(0);
+ except Exception, e:
+ print str(e);
+ exit(-1);
+
+
+
+if __name__ == "__main__":
+ main();
+
+
diff --git a/linux_dpdk/d b/linux_dpdk/d
new file mode 100644
index 00000000..dfa5d8e8
--- /dev/null
+++ b/linux_dpdk/d
@@ -0,0 +1,2 @@
+rm -f ../linux_dpdk/build_dpdk/linux_dpdk/_t-rex-64
+./b --target=_t-rex-64-debug
diff --git a/linux_dpdk/ws_main.py b/linux_dpdk/ws_main.py
index e5ac40fb..4c8d821d 100755
--- a/linux_dpdk/ws_main.py
+++ b/linux_dpdk/ws_main.py
@@ -162,6 +162,7 @@ stateless_src = SrcGroup(dir='src/stateless/',
'cp/trex_stateless.cpp',
'cp/trex_stateless_port.cpp',
'cp/trex_streams_compiler.cpp',
+ 'cp/trex_vm_splitter.cpp',
'cp/trex_dp_port_events.cpp',
'dp/trex_stateless_dp_core.cpp',
'messaging/trex_stateless_messaging.cpp'
@@ -210,152 +211,143 @@ version_src = SrcGroup(
])
-dpdk_src = SrcGroup(dir='src/dpdk_lib18/',
+dpdk_src = SrcGroup(dir='src/dpdk22/',
src_list=[
- 'librte_ring/rte_ring.c',
- 'librte_timer/rte_timer.c',
- #'librte_pmd_ixgbe/ixgbe_82599_bypass.c',
- #'librte_pmd_ixgbe/ixgbe_bypass.c',
- 'librte_pmd_ixgbe/ixgbe_ethdev.c',
- 'librte_pmd_ixgbe/ixgbe_fdir.c',
- 'librte_pmd_ixgbe/ixgbe_pf.c',
- 'librte_pmd_ixgbe/ixgbe_rxtx.c',
- 'librte_pmd_ixgbe/ixgbe_rxtx_vec.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_82598.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_82599.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_api.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_common.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_dcb.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_dcb_82598.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_dcb_82599.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_mbx.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_phy.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_vf.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_x540.c',
- 'librte_pmd_ixgbe/ixgbe/ixgbe_x550.c',
-
- 'librte_pmd_vmxnet3/vmxnet3_ethdev.c',
- 'librte_pmd_vmxnet3/vmxnet3_rxtx.c',
-
- 'librte_pmd_virtio/virtio_ethdev.c',
- 'librte_pmd_virtio/virtio_pci.c',
- 'librte_pmd_virtio/virtio_rxtx.c',
- 'librte_pmd_virtio/virtqueue.c',
-
- 'librte_pmd_enic/enic_clsf.c',
- 'librte_pmd_enic/enic_ethdev.c',
- 'librte_pmd_enic/enic_main.c',
- 'librte_pmd_enic/enic_res.c',
- 'librte_pmd_enic/vnic/vnic_cq.c',
- 'librte_pmd_enic/vnic/vnic_dev.c',
- 'librte_pmd_enic/vnic/vnic_intr.c',
- 'librte_pmd_enic/vnic/vnic_rq.c',
- 'librte_pmd_enic/vnic/vnic_rss.c',
- 'librte_pmd_enic/vnic/vnic_wq.c',
-
- 'librte_malloc/malloc_elem.c',
- 'librte_malloc/malloc_heap.c',
- 'librte_malloc/rte_malloc.c',
-
- 'librte_mbuf/rte_mbuf.c',
- 'librte_mempool/rte_mempool.c',
-
- 'librte_pmd_e1000/em_ethdev.c',
- 'librte_pmd_e1000/em_rxtx.c',
- 'librte_pmd_e1000/igb_ethdev.c',
- 'librte_pmd_e1000/igb_pf.c',
- 'librte_pmd_e1000/igb_rxtx.c',
- 'librte_pmd_e1000/e1000/e1000_80003es2lan.c',
- 'librte_pmd_e1000/e1000/e1000_82540.c',
- 'librte_pmd_e1000/e1000/e1000_82541.c',
- 'librte_pmd_e1000/e1000/e1000_82542.c',
- 'librte_pmd_e1000/e1000/e1000_82543.c',
- 'librte_pmd_e1000/e1000/e1000_82571.c',
- 'librte_pmd_e1000/e1000/e1000_82575.c',
- 'librte_pmd_e1000/e1000/e1000_api.c',
- 'librte_pmd_e1000/e1000/e1000_i210.c',
- 'librte_pmd_e1000/e1000/e1000_ich8lan.c',
- 'librte_pmd_e1000/e1000/e1000_mac.c',
- 'librte_pmd_e1000/e1000/e1000_manage.c',
- 'librte_pmd_e1000/e1000/e1000_mbx.c',
- 'librte_pmd_e1000/e1000/e1000_nvm.c',
- 'librte_pmd_e1000/e1000/e1000_osdep.c',
- 'librte_pmd_e1000/e1000/e1000_phy.c',
- 'librte_pmd_e1000/e1000/e1000_vf.c',
- 'librte_hash/rte_fbk_hash.c',
- 'librte_hash/rte_hash.c',
- 'librte_cmdline/cmdline.c',
- 'librte_cmdline/cmdline_cirbuf.c',
- 'librte_cmdline/cmdline_parse.c',
- 'librte_cmdline/cmdline_parse_etheraddr.c',
- 'librte_cmdline/cmdline_parse_ipaddr.c',
- 'librte_cmdline/cmdline_parse_num.c',
- 'librte_cmdline/cmdline_parse_portlist.c',
- 'librte_cmdline/cmdline_parse_string.c',
- 'librte_cmdline/cmdline_rdline.c',
- 'librte_cmdline/cmdline_socket.c',
- 'librte_cmdline/cmdline_vt100.c',
-
- 'librte_eal/common/eal_common_cpuflags.c',
- 'librte_eal/common/eal_common_dev.c',
- 'librte_eal/common/eal_common_devargs.c',
- 'librte_eal/common/eal_common_errno.c',
- 'librte_eal/common/eal_common_hexdump.c',
- 'librte_eal/common/eal_common_launch.c',
- 'librte_eal/common/eal_common_log.c',
- 'librte_eal/common/eal_common_memory.c',
- 'librte_eal/common/eal_common_memzone.c',
- 'librte_eal/common/eal_common_options.c',
- 'librte_eal/common/eal_common_pci.c',
- 'librte_eal/common/eal_common_string_fns.c',
- 'librte_eal/common/eal_common_tailqs.c',
-
- 'librte_ether/rte_ethdev.c',
-
- 'librte_pmd_ring/rte_eth_ring.c',
- 'librte_kvargs/rte_kvargs.c',
-
-
- 'librte_eal/linuxapp/eal/eal.c',
- 'librte_eal/linuxapp/eal/eal_alarm.c',
- 'librte_eal/linuxapp/eal/eal_debug.c',
- 'librte_eal/linuxapp/eal/eal_hugepage_info.c',
- 'librte_eal/linuxapp/eal/eal_interrupts.c',
- 'librte_eal/linuxapp/eal/eal_ivshmem.c',
- 'librte_eal/linuxapp/eal/eal_lcore.c',
- 'librte_eal/linuxapp/eal/eal_log.c',
- 'librte_eal/linuxapp/eal/eal_memory.c',
- 'librte_eal/linuxapp/eal/eal_pci.c',
- 'librte_eal/linuxapp/eal/eal_pci_uio.c',
- 'librte_eal/linuxapp/eal/eal_pci_vfio.c',
- 'librte_eal/linuxapp/eal/eal_pci_vfio_mp_sync.c',
- 'librte_eal/linuxapp/eal/eal_thread.c',
- 'librte_eal/linuxapp/eal/eal_timer.c',
- #'librte_eal/linuxapp/eal/eal_xen_memory.c'
-
- 'librte_pmd_i40e/i40e_ethdev.c',
- 'librte_pmd_i40e/i40e_ethdev_vf.c',
- 'librte_pmd_i40e/i40e_fdir.c',
- 'librte_pmd_i40e/i40e_pf.c',
- 'librte_pmd_i40e/i40e_rxtx.c',
- 'librte_pmd_i40e/i40e/i40e_adminq.c',
- 'librte_pmd_i40e/i40e/i40e_common.c',
- 'librte_pmd_i40e/i40e/i40e_dcb.c',
- 'librte_pmd_i40e/i40e/i40e_diag.c',
- 'librte_pmd_i40e/i40e/i40e_hmc.c',
- 'librte_pmd_i40e/i40e/i40e_lan_hmc.c',
- 'librte_pmd_i40e/i40e/i40e_nvm.c'
+ 'drivers/net/af_packet/rte_eth_af_packet.c',
+ 'drivers/net/cxgbe/base/t4_hw.c',
+ 'drivers/net/cxgbe/cxgbe_ethdev.c',
+ 'drivers/net/cxgbe/cxgbe_main.c',
+ 'drivers/net/cxgbe/sge.c',
+ 'drivers/net/e1000/base/e1000_80003es2lan.c',
+ 'drivers/net/e1000/base/e1000_82540.c',
+ 'drivers/net/e1000/base/e1000_82541.c',
+ 'drivers/net/e1000/base/e1000_82542.c',
+ 'drivers/net/e1000/base/e1000_82543.c',
+ 'drivers/net/e1000/base/e1000_82571.c',
+ 'drivers/net/e1000/base/e1000_82575.c',
+ 'drivers/net/e1000/base/e1000_api.c',
+ 'drivers/net/e1000/base/e1000_i210.c',
+ 'drivers/net/e1000/base/e1000_ich8lan.c',
+ 'drivers/net/e1000/base/e1000_mac.c',
+ 'drivers/net/e1000/base/e1000_manage.c',
+ 'drivers/net/e1000/base/e1000_mbx.c',
+ 'drivers/net/e1000/base/e1000_nvm.c',
+ 'drivers/net/e1000/base/e1000_osdep.c',
+ 'drivers/net/e1000/base/e1000_phy.c',
+ 'drivers/net/e1000/base/e1000_vf.c',
+ 'drivers/net/e1000/em_ethdev.c',
+ 'drivers/net/e1000/em_rxtx.c',
+ 'drivers/net/e1000/igb_ethdev.c',
+ 'drivers/net/e1000/igb_pf.c',
+ 'drivers/net/e1000/igb_rxtx.c',
+ 'drivers/net/enic/base/vnic_cq.c',
+ 'drivers/net/enic/base/vnic_dev.c',
+ 'drivers/net/enic/base/vnic_intr.c',
+ 'drivers/net/enic/base/vnic_rq.c',
+ 'drivers/net/enic/base/vnic_rss.c',
+ 'drivers/net/enic/base/vnic_wq.c',
+ 'drivers/net/enic/enic_clsf.c',
+ 'drivers/net/enic/enic_ethdev.c',
+ 'drivers/net/enic/enic_main.c',
+ 'drivers/net/enic/enic_res.c',
+ 'drivers/net/fm10k/base/fm10k_api.c',
+ 'drivers/net/fm10k/base/fm10k_common.c',
+ 'drivers/net/fm10k/base/fm10k_mbx.c',
+ 'drivers/net/fm10k/base/fm10k_pf.c',
+ 'drivers/net/fm10k/base/fm10k_tlv.c',
+ 'drivers/net/fm10k/base/fm10k_vf.c',
+ 'drivers/net/fm10k/fm10k_ethdev.c',
+ 'drivers/net/fm10k/fm10k_rxtx.c',
+ 'drivers/net/fm10k/fm10k_rxtx_vec.c',
+ 'drivers/net/ixgbe/base/ixgbe_82598.c',
+ 'drivers/net/ixgbe/base/ixgbe_82599.c',
+ 'drivers/net/ixgbe/base/ixgbe_api.c',
+ 'drivers/net/ixgbe/base/ixgbe_common.c',
+ 'drivers/net/ixgbe/base/ixgbe_dcb.c',
+ 'drivers/net/ixgbe/base/ixgbe_dcb_82598.c',
+ 'drivers/net/ixgbe/base/ixgbe_dcb_82599.c',
+ 'drivers/net/ixgbe/base/ixgbe_mbx.c',
+ 'drivers/net/ixgbe/base/ixgbe_phy.c',
+ 'drivers/net/ixgbe/base/ixgbe_vf.c',
+ 'drivers/net/ixgbe/base/ixgbe_x540.c',
+ 'drivers/net/ixgbe/base/ixgbe_x550.c',
+ 'drivers/net/ixgbe/ixgbe_ethdev.c',
+ 'drivers/net/ixgbe/ixgbe_fdir.c',
+ 'drivers/net/ixgbe/ixgbe_pf.c',
+ 'drivers/net/ixgbe/ixgbe_rxtx.c',
+ 'drivers/net/ixgbe/ixgbe_rxtx_vec.c',
+ 'drivers/net/i40e/base/i40e_adminq.c',
+ 'drivers/net/i40e/base/i40e_common.c',
+ 'drivers/net/i40e/base/i40e_dcb.c',
+ 'drivers/net/i40e/base/i40e_diag.c',
+ 'drivers/net/i40e/base/i40e_hmc.c',
+ 'drivers/net/i40e/base/i40e_lan_hmc.c',
+ 'drivers/net/i40e/base/i40e_nvm.c',
+ 'drivers/net/i40e/i40e_ethdev_vf.c',
+ 'drivers/net/i40e/i40e_pf.c',
+ 'drivers/net/i40e/i40e_rxtx.c',
+ 'drivers/net/i40e/i40e_rxtx_vec.c',
+ 'drivers/net/i40e/i40e_fdir.c',
+ 'drivers/net/i40e/i40e_ethdev.c',
+ 'drivers/net/null/rte_eth_null.c',
+ 'drivers/net/ring/rte_eth_ring.c',
+ 'drivers/net/virtio/virtio_ethdev.c',
+ 'drivers/net/virtio/virtio_pci.c',
+ 'drivers/net/virtio/virtio_rxtx.c',
+ 'drivers/net/virtio/virtio_rxtx_simple.c',
+ 'drivers/net/virtio/virtqueue.c',
+ '/drivers/net/vmxnet3/vmxnet3_ethdev.c',
+ '/drivers/net/vmxnet3/vmxnet3_rxtx.c',
+ 'lib/librte_cfgfile/rte_cfgfile.c',
+ 'lib/librte_eal/common/eal_common_cpuflags.c',
+ 'lib/librte_eal/common/eal_common_dev.c',
+ 'lib/librte_eal/common/eal_common_devargs.c',
+ 'lib/librte_eal/common/eal_common_errno.c',
+ 'lib/librte_eal/common/eal_common_hexdump.c',
+ 'lib/librte_eal/common/eal_common_launch.c',
+ 'lib/librte_eal/common/eal_common_lcore.c',
+ 'lib/librte_eal/common/eal_common_log.c',
+ 'lib/librte_eal/common/eal_common_memory.c',
+ 'lib/librte_eal/common/eal_common_memzone.c',
+ 'lib/librte_eal/common/eal_common_options.c',
+ 'lib/librte_eal/common/eal_common_pci.c',
+ 'lib/librte_eal/common/eal_common_pci_uio.c',
+ 'lib/librte_eal/common/eal_common_string_fns.c',
+ 'lib/librte_eal/common/eal_common_tailqs.c',
+ 'lib/librte_eal/common/eal_common_thread.c',
+ 'lib/librte_eal/common/eal_common_timer.c',
+ 'lib/librte_eal/common/malloc_elem.c',
+ 'lib/librte_eal/common/malloc_heap.c',
+ 'lib/librte_eal/common/rte_keepalive.c',
+ 'lib/librte_eal/common/rte_malloc.c',
+ 'lib/librte_eal/linuxapp/eal/eal.c',
+ 'lib/librte_eal/linuxapp/eal/eal_alarm.c',
+ 'lib/librte_eal/linuxapp/eal/eal_debug.c',
+ 'lib/librte_eal/linuxapp/eal/eal_hugepage_info.c',
+ 'lib/librte_eal/linuxapp/eal/eal_interrupts.c',
+ 'lib/librte_eal/linuxapp/eal/eal_ivshmem.c',
+ 'lib/librte_eal/linuxapp/eal/eal_lcore.c',
+ 'lib/librte_eal/linuxapp/eal/eal_log.c',
+ 'lib/librte_eal/linuxapp/eal/eal_memory.c',
+ 'lib/librte_eal/linuxapp/eal/eal_pci.c',
+ 'lib/librte_eal/linuxapp/eal/eal_pci_uio.c',
+ 'lib/librte_eal/linuxapp/eal/eal_pci_vfio.c',
+ 'lib/librte_eal/linuxapp/eal/eal_pci_vfio_mp_sync.c',
+ 'lib/librte_eal/linuxapp/eal/eal_thread.c',
+ 'lib/librte_eal/linuxapp/eal/eal_timer.c',
+ 'lib/librte_ether/rte_ethdev.c',
+ 'lib/librte_hash/rte_cuckoo_hash.c',
+ 'lib/librte_kvargs/rte_kvargs.c',
+ 'lib/librte_mbuf/rte_mbuf.c',
+ 'lib/librte_mempool/rte_mempool.c',
+ 'lib/librte_pipeline/rte_pipeline.c',
+ 'lib/librte_ring/rte_ring.c',
]);
-
-
-
bp_dpdk =SrcGroups([
dpdk_src
]);
-
-
# this is the library dp going to falcon (and maybe other platforms)
bp =SrcGroups([
main_src,
@@ -387,7 +379,7 @@ common_flags = ['-DWIN_UCODE_SIM',
'-Wno-format',
'-Wno-deprecated-declarations',
'-DRTE_DPDK',
- '-include','../src/pal/linux_dpdk/dpdk180/rte_config.h'
+ '-include','../src/pal/linux_dpdk/dpdk22/rte_config.h'
]
common_flags_new = common_flags + [
@@ -427,67 +419,120 @@ includes_path =''' ../src/pal/linux_dpdk/
../external_libs/zmq/include/
../external_libs/json/
- ../src/dpdk_lib18/librte_eal/linuxapp/eal/include/
- ../src/dpdk_lib18/librte_eal/common/include/
- ../src/dpdk_lib18/librte_eal/common/
- ../src/dpdk_lib18/librte_eal/common/include/arch/x86
-
- ../src/dpdk_lib18/librte_ring/
- ../src/dpdk_lib18/librte_mempool/
- ../src/dpdk_lib18/librte_malloc/
- ../src/dpdk_lib18/librte_ether/
-
- ../src/dpdk_lib18/librte_cmdline/
- ../src/dpdk_lib18/librte_hash/
- ../src/dpdk_lib18/librte_lpm/
- ../src/dpdk_lib18/librte_mbuf/
- ../src/dpdk_lib18/librte_pmd_igb/
- ../src/dpdk_lib18/librte_pmd_ixgbe/
-
- ../src/dpdk_lib18/librte_pmd_enic/
- ../src/dpdk_lib18/librte_pmd_enic/vnic/
- ../src/dpdk_lib18/librte_pmd_virtio/
- ../src/dpdk_lib18/librte_pmd_vmxnet3/
-
- ../src/dpdk_lib18/librte_timer/
- ../src/dpdk_lib18/librte_net/
- ../src/dpdk_lib18/librte_pmd_ring/
- ../src/dpdk_lib18/librte_kvargs/
-
-
+../src/dpdk22/drivers/
+../src/dpdk22/drivers/net/
+../src/dpdk22/drivers/net/af_packet/
+../src/dpdk22/drivers/net/bnx2x/
+../src/dpdk22/drivers/net/bonding/
+../src/dpdk22/drivers/net/cxgbe/
+../src/dpdk22/drivers/net/cxgbe/base/
+../src/dpdk22/drivers/net/e1000/
+../src/dpdk22/drivers/net/e1000/base/
+../src/dpdk22/drivers/net/fm10k/
+../src/dpdk22/drivers/net/fm10k/base/
+../src/dpdk22/drivers/net/i40e/
+../src/dpdk22/drivers/net/i40e/base/
+../src/dpdk22/drivers/net/ixgbe/
+../src/dpdk22/drivers/net/ixgbe/base/
+../src/dpdk22/drivers/net/mlx4/
+../src/dpdk22/drivers/net/mlx5/
+../src/dpdk22/drivers/net/mpipe/
+../src/dpdk22/drivers/net/null/
+../src/dpdk22/drivers/net/pcap/
+../src/dpdk22/drivers/net/ring/
+../src/dpdk22/drivers/net/szedata2/
+../src/dpdk22/drivers/net/virtio/
+../src/dpdk22/drivers/net/xenvirt/
+../src/dpdk22/lib/
+../src/dpdk22/lib/librte_acl/
+../src/dpdk22/lib/librte_cfgfile/
+../src/dpdk22/lib/librte_compat/
+../src/dpdk22/lib/librte_distributor/
+../src/dpdk22/lib/librte_eal/
+../src/dpdk22/lib/librte_eal/common/
+../src/dpdk22/lib/librte_eal/common/include/
+../src/dpdk22/lib/librte_eal/common/include/arch/
+../src/dpdk22/lib/librte_eal/common/include/arch/x86/
+../src/dpdk22/lib/librte_eal/common/include/generic/
+../src/dpdk22/lib/librte_eal/linuxapp/
+../src/dpdk22/lib/librte_eal/linuxapp/eal/
+../src/dpdk22/lib/librte_eal/linuxapp/eal/include/
+../src/dpdk22/lib/librte_eal/linuxapp/eal/include/exec-env/
+../src/dpdk22/lib/librte_eal/linuxapp/igb_uio/
+../src/dpdk22/lib/librte_eal/linuxapp/xen_dom0/
+../src/dpdk22/lib/librte_ether/
+../src/dpdk22/lib/librte_hash/
+../src/dpdk22/lib/librte_kvargs/
+../src/dpdk22/lib/librte_mbuf/
+../src/dpdk22/lib/librte_mempool/
+../src/dpdk22/lib/librte_pipeline/
+../src/dpdk22/lib/librte_ring/
+../src/dpdk22/
''';
dpdk_includes_path =''' ../src/
../src/pal/linux_dpdk/
- ../src/dpdk_lib18/librte_eal/linuxapp/eal/include/
- ../src/dpdk_lib18/librte_eal/common/include/
- ../src/dpdk_lib18/librte_eal/common/
- ../src/dpdk_lib18/librte_eal/common/include/arch/x86
-
- ../src/dpdk_lib18/librte_pmd_enic/
- ../src/dpdk_lib18/librte_pmd_virtio/
- ../src/dpdk_lib18/librte_pmd_vmxnet3/
- ../src/dpdk_lib18/librte_pmd_enic/vnic/
-
- ../src/dpdk_lib18/librte_ring/
- ../src/dpdk_lib18/librte_mempool/
- ../src/dpdk_lib18/librte_malloc/
- ../src/dpdk_lib18/librte_ether/
- ../src/dpdk_lib18/librte_cmdline/
- ../src/dpdk_lib18/librte_hash/
- ../src/dpdk_lib18/librte_lpm/
- ../src/dpdk_lib18/librte_mbuf/
- ../src/dpdk_lib18/librte_pmd_igb/
- ../src/dpdk_lib18/librte_pmd_ixgbe/
- ../src/dpdk_lib18/librte_timer/
- ../src/dpdk_lib18/librte_net/
- ../src/dpdk_lib18/librte_pmd_ring/
- ../src/dpdk_lib18/librte_kvargs/
-
- ''';
-
-
-DPDK_WARNING=['-D_GNU_SOURCE'];
+ ../src/pal/linux_dpdk/dpdk22
+../src/dpdk22/drivers/
+../src/dpdk22/drivers/net/
+../src/dpdk22/drivers/net/af_packet/
+../src/dpdk22/drivers/net/bnx2x/
+../src/dpdk22/drivers/net/bonding/
+../src/dpdk22/drivers/net/cxgbe/
+../src/dpdk22/drivers/net/cxgbe/base/
+../src/dpdk22/drivers/net/e1000/
+../src/dpdk22/drivers/net/e1000/base/
+../src/dpdk22/drivers/net/enic/
+../src/dpdk22/drivers/net/enic/base/
+../src/dpdk22/drivers/net/fm10k/
+../src/dpdk22/drivers/net/fm10k/base/
+../src/dpdk22/drivers/net/i40e/
+../src/dpdk22/drivers/net/i40e/base/
+../src/dpdk22/drivers/net/ixgbe/
+../src/dpdk22/drivers/net/ixgbe/base/
+../src/dpdk22/drivers/net/mlx4/
+../src/dpdk22/drivers/net/mlx5/
+../src/dpdk22/drivers/net/mpipe/
+../src/dpdk22/drivers/net/null/
+../src/dpdk22/drivers/net/pcap/
+../src/dpdk22/drivers/net/ring/
+../src/dpdk22/drivers/net/virtio/
+../src/dpdk22/drivers/net/vmxnet3/
+../src/dpdk22/drivers/net/vmxnet3/base
+../src/dpdk22/drivers/net/xenvirt/
+../src/dpdk22/lib/
+../src/dpdk22/lib/librte_acl/
+../src/dpdk22/lib/librte_cfgfile/
+../src/dpdk22/lib/librte_compat/
+../src/dpdk22/lib/librte_distributor/
+../src/dpdk22/lib/librte_eal/
+../src/dpdk22/lib/librte_eal/common/
+../src/dpdk22/lib/librte_eal/common/include/
+../src/dpdk22/lib/librte_eal/common/include/arch/
+../src/dpdk22/lib/librte_eal/common/include/arch/x86/
+../src/dpdk22/lib/librte_eal/common/include/generic/
+../src/dpdk22/lib/librte_eal/linuxapp/
+../src/dpdk22/lib/librte_eal/linuxapp/eal/
+../src/dpdk22/lib/librte_eal/linuxapp/eal/include/
+../src/dpdk22/lib/librte_eal/linuxapp/eal/include/exec-env/
+../src/dpdk22/lib/librte_eal/linuxapp/igb_uio/
+../src/dpdk22/lib/librte_eal/linuxapp/xen_dom0/
+../src/dpdk22/lib/librte_ether/
+../src/dpdk22/lib/librte_hash/
+../src/dpdk22/lib/librte_kvargs/
+../src/dpdk22/lib/librte_mbuf/
+../src/dpdk22/lib/librte_mempool/
+../src/dpdk22/lib/librte_pipeline/
+../src/dpdk22/lib/librte_ring/
+../src/dpdk22/lib/librte_net/
+../src/dpdk22/lib/librte_port/
+../src/dpdk22/lib/librte_pipeline/
+../src/dpdk22/lib/librte_table/
+../src/dpdk22/
+''';
+
+
+DPDK_FLAGS=['-D_GNU_SOURCE', '-DPF_DRIVER', '-DX722_SUPPORT', '-DVF_DRIVER', '-DINTEGRATED_VF'];
@@ -604,6 +649,7 @@ class build_option:
base_flags = [];
if self.is64Platform():
base_flags += ['-m64'];
+ base_flags += ['-lrt'];
else:
base_flags += ['-lrt'];
@@ -636,7 +682,7 @@ def build_prog (bld, build_obj):
features='c ',
includes = dpdk_includes_path,
- cflags = (build_obj.get_c_flags()+DPDK_WARNING ),
+ cflags = (build_obj.get_c_flags()+DPDK_FLAGS ),
source = bp_dpdk.file_list(top),
target=build_obj.get_dpdk_target()
);
@@ -779,6 +825,7 @@ files_list=[
'trex-cfg',
'bp-sim-64',
'bp-sim-64-debug',
+ 't-rex-debug-gdb',
'mock-rpc-server-64-debug',
'release_notes.pdf',
'dpdk_nic_bind.py',