GithubHelp home page GithubHelp logo

aregm / nff-go Goto Github PK

View Code? Open in Web Editor NEW
1.4K 80.0 156.0 12.52 MB

NFF-Go -Network Function Framework for GO (former YANFF)

License: BSD 3-Clause "New" or "Revised" License

Makefile 2.08% Go 89.08% Assembly 0.13% C 7.12% Shell 0.91% Dockerfile 0.68%
dpdk golang networking vnf go linux containers intel network-functions packet-processing

nff-go's People

Contributors

ader1990 avatar adigadi avatar aregm avatar dannypsnl avatar darinkes avatar dkolistratova avatar florianl avatar gshimansky avatar guesslin avatar harrisonmc555 avatar ifilippov avatar marcusschiesser avatar mercimat avatar mkfsn avatar nak3 avatar quasilyte avatar rscohn2 avatar scroot avatar tempdban avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nff-go's Issues

gotest testChecksum

We have ~10 checksum tests in stability.json and only one in cksum_test.go. Is this right? You can use SystemStop now.

Broken mailing list link

On the CONTRIBUTING.md page, it claims that the mailing list is a "durable communication channel", but the link is broken. I wasn't able to find a live link to any mailing list for YANFF.

I tried the IRC channel but either I didn't do it right (I've never used IRC before) or nobody was on when I tried.

Need NAT performance tests

We need performance tests to run NAT with apache benchmark and compare it with Linux iptables performance.

Need to rewrite NAT

Need to rewrite NAT using DirectSend for ARP requests, instead of confusing merges.

Types correction

Ports should be uint16 due to DPDK
Split should be uint8 due to vectors

Missing cleanup of rte_eal_cleanup from DPDK 18.02

Hi, we are using nff-go and want to re-init it during process executing, but always got errors like

Apr 10 03:29:52 ubuntu router[951]: ------------***-------- Initializing DPDK --------***------------
Apr 10 03:29:52 ubuntu router[951]: EAL: FATAL: already called initialization.
Apr 10 03:29:52 ubuntu router[951]: EAL: already called initialization.
Apr 10 03:29:52 ubuntu router[954]: EAL: Error - exiting with code: 1
Apr 10 03:29:52 ubuntu router[951]:   Cause: Error with EAL initialization
Apr 10 03:29:52 ubuntu router[954]: Error with EAL initialization

I checked DPDK 18.02 Release, they have a new function rte_eal_cleanup to cleanup resource of DPDK used.
Is there any reason nff-go not calling rte_eal_cleanup?

Renaming YANFF to NFF-Go

There was a decision made to rename the YANFF to NFF-Go. I will leave this issue for a while to see are there any concerns, up-votes/down-votes.

New VLAN checksum tests fail

I see that newly merged VLAN checksum tests from pull request #223 fail on VirtualBox VMs:

[11:19:34]	[Step 4/4] 2018/03/05 13:19:35 /--- Running test cksums_ipv4_tcp_vlan ---
[11:19:34]	[Step 4/4] 2018/03/05 13:19:35 DD: Created client for cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum: , client = &{http tcp://localhost:2218 tcp localhost:2218  0xc420160930 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:34]	[Step 4/4] 2018/03/05 13:19:35 DD: Created container for cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:e42324e775b1ab143569fb67a26d7b1227321be57ca0d7da3c537a27d5e135d6 , response = {e42324e775b1ab143569fb67a26d7b1227321be57ca0d7da3c537a27d5e135d6 []} , err = <nil>
[11:19:35]	[Step 4/4] 2018/03/05 13:19:35 DD: Started container for cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:e42324e775b1ab143569fb67a26d7b1227321be57ca0d7da3c537a27d5e135d6 err = <nil>
[11:19:35]	[Step 4/4] 2018/03/05 13:19:35 DD: Created client for cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum: , client = &{http tcp://localhost:2220 tcp localhost:2220  0xc4202484b0 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:35]	[Step 4/4] 2018/03/05 13:19:35 DD: Created container for cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:917fab38a49995a8d8583a845be53434fb577f3ba15a4dc51b9875337b68afa9 , response = {917fab38a49995a8d8583a845be53434fb577f3ba15a4dc51b9875337b68afa9 []} , err = <nil>
[11:19:35]	[Step 4/4] 2018/03/05 13:19:36 DD: Started container for cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:917fab38a49995a8d8583a845be53434fb577f3ba15a4dc51b9875337b68afa9 err = <nil>
[11:19:35]	[Step 4/4] 2018/03/05 13:19:36 DD: Trying to read logs from container 917fab38a49995a8d8583a845be53434fb577f3ba15a4dc51b9875337b68afa9
[11:19:35]	[Step 4/4] 2018/03/05 13:19:36 DD: Trying to read logs from container e42324e775b1ab143569fb67a26d7b1227321be57ca0d7da3c537a27d5e135d6
[11:19:36]	[Step 4/4] 2018/03/05 13:19:36 0 IPv4 L3 and TCP L4 mode is enabled
[11:19:36]	[Step 4/4] 2018/03/05 13:19:36 0 ------------***-------- Initializing DPDK --------***------------
[11:19:36]	[Step 4/4] 2018/03/05 13:19:36 1 No L3 IP mode selected. Enabling IPv4 by default
[11:19:36]	[Step 4/4] 2018/03/05 13:19:36 1 No L4 packet type mode selected. Enabling UDP by default
[11:19:36]	[Step 4/4] 2018/03/05 13:19:36 1 UDP L4 mode is enabled
[11:19:36]	[Step 4/4] 2018/03/05 13:19:36 1 ------------***-------- Initializing DPDK --------***------------
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 ------------***-------- Initializing ports -------***------------
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 ------------***------ Initializing scheduler -----***------------
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 ------------***------ Filling FlowFunctions ------***------------
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 ------------***--------- Checking system ---------***------------
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 ------------***---------- Creating ports ---------***------------
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 DEBUG: Port 0 MAC address: 08 00 27 a4 a0 33
[11:19:37]	[Step 4/4] 2018/03/05 13:19:37 0 DEBUG: Port 1 MAC address: 08 00 27 71 63 aa
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 ------------***-------- Initializing ports -------***------------
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 ------------***------ Initializing scheduler -----***------------
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 ------------***------ Filling FlowFunctions ------***------------
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 ------------***--------- Checking system ---------***------------
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 ------------***---------- Creating ports ---------***------------
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 DEBUG: Port 0 MAC address: 08 00 27 2f c9 8c
[11:19:38]	[Step 4/4] 2018/03/05 13:19:38 1 DEBUG: Port 1 MAC address: 08 00 27 35 9f 1e
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 ------------***------ Starting FlowFunctions -----***------------
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start SCHEDULER at 0 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start STOP at scheduler 0 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start unclonable FlowFunction generator 1 at 1 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start unclonable FlowFunction sender 2 at 2 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start unclonable FlowFunction receiver 3 at 3 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start clonable FlowFunction handler 4 at 4 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 DEBUG: Start clonable FlowFunction handler 5 at 5 core
[11:19:39]	[Step 4/4] 2018/03/05 13:19:39 0 ------------***--------- NFF-GO-GO Started --------***------------
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: ---------------
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: System is using 6 cores now. 2 cores are left available.
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: Number of packets in queue for separate:  0
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: Current speed of handler 4 is 0 PKT/S
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: Number of packets in queue for handle:  0
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: Current speed of handler 5 is 0 PKT/S
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: Mempool N 0 used 513 from 32764
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 0 DEBUG: Mempool N 1 used 128 from 32764
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 ------------***------ Starting FlowFunctions -----***------------
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start SCHEDULER at 0 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start STOP at scheduler 0 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start unclonable FlowFunction receiver 1 at 1 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start unclonable FlowFunction sender 5 at 2 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start clonable FlowFunction handler 2 at 3 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start clonable FlowFunction handler 3 at 4 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:40 1 DEBUG: Start clonable FlowFunction handler 4 at 5 core
[11:19:40]	[Step 4/4] 2018/03/05 13:19:41 1 ------------***--------- NFF-GO-GO Started --------***------------
[11:19:40]	[Step 4/4] 2018/03/05 13:19:41 1 IPv4 ICMP checksum mismatch 15290 should be 2866
[11:19:40]	[Step 4/4] 2018/03/05 13:19:41 1 TEST FAILED
[11:19:40]	[Step 4/4] 2018/03/05 13:19:41 DD: Finished with code TestReportedFailed
[11:19:40]	[Step 4/4] 2018/03/05 13:19:41 DD: Trying to kill container for app cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:e42324e775b1ab143569fb67a26d7b1227321be57ca0d7da3c537a27d5e135d6
[11:19:40]	[Step 4/4] 2018/03/05 13:19:41 DD: Trying to remove container for app cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:e42324e775b1ab143569fb67a26d7b1227321be57ca0d7da3c537a27d5e135d6
[11:19:41]	[Step 4/4] 2018/03/05 13:19:41 DD: Trying to kill container for app cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:917fab38a49995a8d8583a845be53434fb577f3ba15a4dc51b9875337b68afa9
[11:19:41]	[Step 4/4] 2018/03/05 13:19:41 DD: Trying to remove container for app cksums_ipv4_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:917fab38a49995a8d8583a845be53434fb577f3ba15a4dc51b9875337b68afa9
[11:19:41]	[Step 4/4] 2018/03/05 13:19:42 \--- Finished test cksums_ipv4_tcp_vlan --- status: TestRunning
[11:19:41]	[Step 4/4] 2018/03/05 13:19:42 /--- Running test cksums_ipv4_udp_vlan ---
[11:19:41]	[Step 4/4] 2018/03/05 13:19:42 DD: Created client for cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum: , client = &{http tcp://localhost:2218 tcp localhost:2218  0xc420249890 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:42]	[Step 4/4] 2018/03/05 13:19:42 DD: Created container for cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:d5e33023425e970c48ae8ca07eec641b6dc913f9edfcdea983675d07ab0668c2 , response = {d5e33023425e970c48ae8ca07eec641b6dc913f9edfcdea983675d07ab0668c2 []} , err = <nil>
[11:19:42]	[Step 4/4] 2018/03/05 13:19:43 DD: Started container for cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:d5e33023425e970c48ae8ca07eec641b6dc913f9edfcdea983675d07ab0668c2 err = <nil>
[11:19:42]	[Step 4/4] 2018/03/05 13:19:43 DD: Created client for cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum: , client = &{http tcp://localhost:2220 tcp localhost:2220  0xc420338120 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:42]	[Step 4/4] 2018/03/05 13:19:43 DD: Created container for cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:229c1276fb473a1f16bfd81f7e84dc98fd55dbc526cdcb00c48b7baa3c7ca61b , response = {229c1276fb473a1f16bfd81f7e84dc98fd55dbc526cdcb00c48b7baa3c7ca61b []} , err = <nil>
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 DD: Started container for cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:229c1276fb473a1f16bfd81f7e84dc98fd55dbc526cdcb00c48b7baa3c7ca61b err = <nil>
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 DD: Trying to read logs from container 229c1276fb473a1f16bfd81f7e84dc98fd55dbc526cdcb00c48b7baa3c7ca61b
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 DD: Trying to read logs from container d5e33023425e970c48ae8ca07eec641b6dc913f9edfcdea983675d07ab0668c2
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 0 IPv4 L3 and UDP L4 mode is enabled
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 0 ------------***-------- Initializing DPDK --------***------------
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 1 No L3 IP mode selected. Enabling IPv4 by default
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 1 No L4 packet type mode selected. Enabling UDP by default
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 1 UDP L4 mode is enabled
[11:19:43]	[Step 4/4] 2018/03/05 13:19:43 1 ------------***-------- Initializing DPDK --------***------------
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 ------------***-------- Initializing ports -------***------------
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 ------------***------ Initializing scheduler -----***------------
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 ------------***------ Filling FlowFunctions ------***------------
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 ------------***--------- Checking system ---------***------------
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 ------------***---------- Creating ports ---------***------------
[11:19:44]	[Step 4/4] 2018/03/05 13:19:44 0 DEBUG: Port 0 MAC address: 08 00 27 a4 a0 33
[11:19:44]	[Step 4/4] 2018/03/05 13:19:45 0 DEBUG: Port 1 MAC address: 08 00 27 71 63 aa
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 ------------***-------- Initializing ports -------***------------
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 ------------***------ Initializing scheduler -----***------------
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 ------------***------ Filling FlowFunctions ------***------------
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 ------------***--------- Checking system ---------***------------
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 ------------***---------- Creating ports ---------***------------
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 DEBUG: Port 0 MAC address: 08 00 27 2f c9 8c
[11:19:45]	[Step 4/4] 2018/03/05 13:19:45 1 DEBUG: Port 1 MAC address: 08 00 27 35 9f 1e
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 ------------***------ Starting FlowFunctions -----***------------
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start SCHEDULER at 0 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start STOP at scheduler 0 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start unclonable FlowFunction generator 1 at 1 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start unclonable FlowFunction sender 2 at 2 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start unclonable FlowFunction receiver 3 at 3 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start clonable FlowFunction handler 4 at 4 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 DEBUG: Start clonable FlowFunction handler 5 at 5 core
[11:19:46]	[Step 4/4] 2018/03/05 13:19:47 0 ------------***--------- NFF-GO-GO Started --------***------------
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 ------------***------ Starting FlowFunctions -----***------------
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start SCHEDULER at 0 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start STOP at scheduler 0 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start unclonable FlowFunction receiver 1 at 1 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start unclonable FlowFunction sender 5 at 2 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start clonable FlowFunction handler 2 at 3 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start clonable FlowFunction handler 3 at 4 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 DEBUG: Start clonable FlowFunction handler 4 at 5 core
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 ------------***--------- NFF-GO-GO Started --------***------------
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 IPv4 ICMP checksum mismatch 15290 should be 34360
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 1 TEST FAILED
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 DD: Finished with code TestReportedFailed
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 DD: Trying to kill container for app cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:d5e33023425e970c48ae8ca07eec641b6dc913f9edfcdea983675d07ab0668c2
[11:19:47]	[Step 4/4] 2018/03/05 13:19:47 DD: Trying to remove container for app cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:d5e33023425e970c48ae8ca07eec641b6dc913f9edfcdea983675d07ab0668c2
[11:19:47]	[Step 4/4] 2018/03/05 13:19:48 DD: Trying to kill container for app cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:229c1276fb473a1f16bfd81f7e84dc98fd55dbc526cdcb00c48b7baa3c7ca61b
[11:19:48]	[Step 4/4] 2018/03/05 13:19:48 DD: Trying to remove container for app cksums_ipv4_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:229c1276fb473a1f16bfd81f7e84dc98fd55dbc526cdcb00c48b7baa3c7ca61b
[11:19:48]	[Step 4/4] 2018/03/05 13:19:49 \--- Finished test cksums_ipv4_udp_vlan --- status: TestRunning
[11:19:48]	[Step 4/4] 2018/03/05 13:19:49 /--- Running test cksums_ipv6_tcp_vlan ---
[11:19:48]	[Step 4/4] 2018/03/05 13:19:49 DD: Created client for cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum: , client = &{http tcp://localhost:2218 tcp localhost:2218  0xc420392630 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:48]	[Step 4/4] 2018/03/05 13:19:49 DD: Created container for cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:3b477ba8d39370d625e9c29ad638ad4f0791acc6c927284272aa4b80bb370efd , response = {3b477ba8d39370d625e9c29ad638ad4f0791acc6c927284272aa4b80bb370efd []} , err = <nil>
[11:19:49]	[Step 4/4] 2018/03/05 13:19:49 DD: Started container for cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:3b477ba8d39370d625e9c29ad638ad4f0791acc6c927284272aa4b80bb370efd err = <nil>
[11:19:49]	[Step 4/4] 2018/03/05 13:19:49 DD: Created client for cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum: , client = &{http tcp://localhost:2220 tcp localhost:2220  0xc420392f00 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:49]	[Step 4/4] 2018/03/05 13:19:49 DD: Created container for cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:411361dbaeac529c6db243ebc6e58414caa13ce449e5061802ed07d13d977910 , response = {411361dbaeac529c6db243ebc6e58414caa13ce449e5061802ed07d13d977910 []} , err = <nil>
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 DD: Started container for cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:411361dbaeac529c6db243ebc6e58414caa13ce449e5061802ed07d13d977910 err = <nil>
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 DD: Trying to read logs from container 411361dbaeac529c6db243ebc6e58414caa13ce449e5061802ed07d13d977910
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 DD: Trying to read logs from container 3b477ba8d39370d625e9c29ad638ad4f0791acc6c927284272aa4b80bb370efd
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 0 IPv6 L3 and TCP L4 mode is enabled
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 0 ------------***-------- Initializing DPDK --------***------------
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 1 No L3 IP mode selected. Enabling IPv4 by default
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 1 No L4 packet type mode selected. Enabling UDP by default
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 1 UDP L4 mode is enabled
[11:19:50]	[Step 4/4] 2018/03/05 13:19:50 1 ------------***-------- Initializing DPDK --------***------------
[11:19:50]	[Step 4/4] 2018/03/05 13:19:51 0 ------------***-------- Initializing ports -------***------------
[11:19:50]	[Step 4/4] 2018/03/05 13:19:51 0 ------------***------ Initializing scheduler -----***------------
[11:19:50]	[Step 4/4] 2018/03/05 13:19:51 0 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:50]	[Step 4/4] 2018/03/05 13:19:51 0 ------------***------ Filling FlowFunctions ------***------------
[11:19:51]	[Step 4/4] 2018/03/05 13:19:51 0 ------------***--------- Checking system ---------***------------
[11:19:51]	[Step 4/4] 2018/03/05 13:19:51 0 ------------***---------- Creating ports ---------***------------
[11:19:51]	[Step 4/4] 2018/03/05 13:19:51 0 DEBUG: Port 0 MAC address: 08 00 27 a4 a0 33
[11:19:51]	[Step 4/4] 2018/03/05 13:19:51 0 DEBUG: Port 1 MAC address: 08 00 27 71 63 aa
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 ------------***-------- Initializing ports -------***------------
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 ------------***------ Initializing scheduler -----***------------
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 ------------***------ Filling FlowFunctions ------***------------
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 ------------***--------- Checking system ---------***------------
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 ------------***---------- Creating ports ---------***------------
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 DEBUG: Port 0 MAC address: 08 00 27 2f c9 8c
[11:19:52]	[Step 4/4] 2018/03/05 13:19:53 1 DEBUG: Port 1 MAC address: 08 00 27 35 9f 1e
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 ------------***------ Starting FlowFunctions -----***------------
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start SCHEDULER at 0 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start STOP at scheduler 0 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start unclonable FlowFunction generator 1 at 1 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start unclonable FlowFunction sender 2 at 2 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start unclonable FlowFunction receiver 3 at 3 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start clonable FlowFunction handler 4 at 4 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 DEBUG: Start clonable FlowFunction handler 5 at 5 core
[11:19:53]	[Step 4/4] 2018/03/05 13:19:53 0 ------------***--------- NFF-GO-GO Started --------***------------
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: ---------------
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: System is using 6 cores now. 2 cores are left available.
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: Number of packets in queue for separate:  0
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: Current speed of handler 4 is 0 PKT/S
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: Number of packets in queue for handle:  0
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: Current speed of handler 5 is 0 PKT/S
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: Mempool N 0 used 513 from 32764
[11:19:54]	[Step 4/4] 2018/03/05 13:19:54 0 DEBUG: Mempool N 1 used 128 from 32764
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 ------------***------ Starting FlowFunctions -----***------------
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start SCHEDULER at 0 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start STOP at scheduler 0 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start unclonable FlowFunction receiver 1 at 1 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start unclonable FlowFunction sender 5 at 2 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start clonable FlowFunction handler 2 at 3 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start clonable FlowFunction handler 3 at 4 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 DEBUG: Start clonable FlowFunction handler 4 at 5 core
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 IPv4 ICMP checksum mismatch 15290 should be 9588
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 1 TEST FAILED
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 DD: Finished with code TestReportedFailed
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 DD: Trying to kill container for app cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:3b477ba8d39370d625e9c29ad638ad4f0791acc6c927284272aa4b80bb370efd
[11:19:54]	[Step 4/4] 2018/03/05 13:19:55 DD: Trying to remove container for app cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:3b477ba8d39370d625e9c29ad638ad4f0791acc6c927284272aa4b80bb370efd
[11:19:55]	[Step 4/4] 2018/03/05 13:19:55 DD: Trying to kill container for app cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:411361dbaeac529c6db243ebc6e58414caa13ce449e5061802ed07d13d977910
[11:19:55]	[Step 4/4] 2018/03/05 13:19:55 DD: Trying to remove container for app cksums_ipv6_tcp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:411361dbaeac529c6db243ebc6e58414caa13ce449e5061802ed07d13d977910
[11:19:55]	[Step 4/4] 2018/03/05 13:19:56 \--- Finished test cksums_ipv6_tcp_vlan --- status: TestRunning
[11:19:55]	[Step 4/4] 2018/03/05 13:19:56 /--- Running test cksums_ipv6_udp_vlan ---
[11:19:55]	[Step 4/4] 2018/03/05 13:19:56 DD: Created client for cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum: , client = &{http tcp://localhost:2218 tcp localhost:2218  0xc4202cf260 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:56]	[Step 4/4] 2018/03/05 13:19:56 DD: Created container for cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:1389c685c4e076f3a56bcd9b946b2543263788c24fed98c70fa829bc2dd0d161 , response = {1389c685c4e076f3a56bcd9b946b2543263788c24fed98c70fa829bc2dd0d161 []} , err = <nil>
[11:19:56]	[Step 4/4] 2018/03/05 13:19:57 DD: Started container for cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:1389c685c4e076f3a56bcd9b946b2543263788c24fed98c70fa829bc2dd0d161 err = <nil>
[11:19:56]	[Step 4/4] 2018/03/05 13:19:57 DD: Created client for cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum: , client = &{http tcp://localhost:2220 tcp localhost:2220  0xc4202cfb60 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:19:56]	[Step 4/4] 2018/03/05 13:19:57 DD: Created container for cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:a6ada1a1e7975f9208cf5b9319ff9e1b86a2c05280ae35f21e73b1e5a222d0a1 , response = {a6ada1a1e7975f9208cf5b9319ff9e1b86a2c05280ae35f21e73b1e5a222d0a1 []} , err = <nil>
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 DD: Started container for cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:a6ada1a1e7975f9208cf5b9319ff9e1b86a2c05280ae35f21e73b1e5a222d0a1 err = <nil>
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 DD: Trying to read logs from container a6ada1a1e7975f9208cf5b9319ff9e1b86a2c05280ae35f21e73b1e5a222d0a1
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 DD: Trying to read logs from container 1389c685c4e076f3a56bcd9b946b2543263788c24fed98c70fa829bc2dd0d161
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 1 No L3 IP mode selected. Enabling IPv4 by default
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 1 No L4 packet type mode selected. Enabling UDP by default
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 1 UDP L4 mode is enabled
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 1 ------------***-------- Initializing DPDK --------***------------
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 0 IPv6 L3 and UDP L4 mode is enabled
[11:19:57]	[Step 4/4] 2018/03/05 13:19:57 0 ------------***-------- Initializing DPDK --------***------------
[11:19:58]	[Step 4/4] 2018/03/05 13:19:58 0 ------------***-------- Initializing ports -------***------------
[11:19:58]	[Step 4/4] 2018/03/05 13:19:58 0 ------------***------ Initializing scheduler -----***------------
[11:19:58]	[Step 4/4] 2018/03/05 13:19:58 0 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:58]	[Step 4/4] 2018/03/05 13:19:58 0 ------------***------ Filling FlowFunctions ------***------------
[11:19:58]	[Step 4/4] 2018/03/05 13:19:59 0 ------------***--------- Checking system ---------***------------
[11:19:58]	[Step 4/4] 2018/03/05 13:19:59 0 ------------***---------- Creating ports ---------***------------
[11:19:58]	[Step 4/4] 2018/03/05 13:19:59 0 DEBUG: Port 0 MAC address: 08 00 27 a4 a0 33
[11:19:58]	[Step 4/4] 2018/03/05 13:19:59 0 DEBUG: Port 1 MAC address: 08 00 27 71 63 aa
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 ------------***-------- Initializing ports -------***------------
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 ------------***------ Initializing scheduler -----***------------
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 ------------***------ Filling FlowFunctions ------***------------
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 ------------***--------- Checking system ---------***------------
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 ------------***---------- Creating ports ---------***------------
[11:19:59]	[Step 4/4] 2018/03/05 13:19:59 1 DEBUG: Port 0 MAC address: 08 00 27 2f c9 8c
[11:19:59]	[Step 4/4] 2018/03/05 13:20:00 1 DEBUG: Port 1 MAC address: 08 00 27 35 9f 1e
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 ------------***------ Starting FlowFunctions -----***------------
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start SCHEDULER at 0 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start STOP at scheduler 0 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start unclonable FlowFunction generator 1 at 1 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start unclonable FlowFunction sender 2 at 2 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start unclonable FlowFunction receiver 3 at 3 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start clonable FlowFunction handler 4 at 4 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 DEBUG: Start clonable FlowFunction handler 5 at 5 core
[11:20:00]	[Step 4/4] 2018/03/05 13:20:01 0 ------------***--------- NFF-GO-GO Started --------***------------
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 ------------***------ Starting FlowFunctions -----***------------
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start SCHEDULER at 0 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start STOP at scheduler 0 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start unclonable FlowFunction receiver 1 at 1 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start unclonable FlowFunction sender 5 at 2 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start clonable FlowFunction handler 2 at 3 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start clonable FlowFunction handler 3 at 4 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 DEBUG: Start clonable FlowFunction handler 4 at 5 core
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 ------------***--------- NFF-GO-GO Started --------***------------
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 IPv4 ICMP checksum mismatch 15290 should be 5658
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 1 TEST FAILED
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 DD: Finished with code TestReportedFailed
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 DD: Trying to kill container for app cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:1389c685c4e076f3a56bcd9b946b2543263788c24fed98c70fa829bc2dd0d161
[11:20:01]	[Step 4/4] 2018/03/05 13:20:02 DD: Trying to remove container for app cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:1389c685c4e076f3a56bcd9b946b2543263788c24fed98c70fa829bc2dd0d161
[11:20:02]	[Step 4/4] 2018/03/05 13:20:02 DD: Trying to kill container for app cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:a6ada1a1e7975f9208cf5b9319ff9e1b86a2c05280ae35f21e73b1e5a222d0a1
[11:20:02]	[Step 4/4] 2018/03/05 13:20:02 DD: Trying to remove container for app cksums_ipv6_udp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:a6ada1a1e7975f9208cf5b9319ff9e1b86a2c05280ae35f21e73b1e5a222d0a1
[11:20:03]	[Step 4/4] 2018/03/05 13:20:03 \--- Finished test cksums_ipv6_udp_vlan --- status: TestRunning
[11:20:03]	[Step 4/4] 2018/03/05 13:20:03 /--- Running test cksums_ipv4_icmp_vlan ---
[11:20:03]	[Step 4/4] 2018/03/05 13:20:03 DD: Created client for cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum: , client = &{http tcp://localhost:2218 tcp localhost:2218  0xc4202801e0 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:20:03]	[Step 4/4] 2018/03/05 13:20:03 DD: Created container for cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:c4b9580153b7c6e890b621f68f58bac932cf9940cba0f7b6c784b151890369ba , response = {c4b9580153b7c6e890b621f68f58bac932cf9940cba0f7b6c784b151890369ba []} , err = <nil>
[11:20:03]	[Step 4/4] 2018/03/05 13:20:04 DD: Started container for cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:c4b9580153b7c6e890b621f68f58bac932cf9940cba0f7b6c784b151890369ba err = <nil>
[11:20:03]	[Step 4/4] 2018/03/05 13:20:04 DD: Created client for cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum: , client = &{http tcp://localhost:2220 tcp localhost:2220  0xc4202808a0 1.24 map[User-Agent:engine-api-cli-1.0] false} , err = <nil>
[11:20:03]	[Step 4/4] 2018/03/05 13:20:04 DD: Created container for cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:d1578f94425dc8d3c8b5cf13f444e60043113e0bacd83a7e614b2841b3e81c46 , response = {d1578f94425dc8d3c8b5cf13f444e60043113e0bacd83a7e614b2841b3e81c46 []} , err = <nil>
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 DD: Started container for cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:d1578f94425dc8d3c8b5cf13f444e60043113e0bacd83a7e614b2841b3e81c46 err = <nil>
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 DD: Trying to read logs from container d1578f94425dc8d3c8b5cf13f444e60043113e0bacd83a7e614b2841b3e81c46
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 DD: Trying to read logs from container c4b9580153b7c6e890b621f68f58bac932cf9940cba0f7b6c784b151890369ba
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 0 IPv4 L3 and ICMP L4 mode is enabled
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 0 Warning: cannot use HW offloading with ICMP protocol, only for L3 ipv4
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 0 ------------***-------- Initializing DPDK --------***------------
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 1 No L3 IP mode selected. Enabling IPv4 by default
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 1 No L4 packet type mode selected. Enabling UDP by default
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 1 UDP L4 mode is enabled
[11:20:04]	[Step 4/4] 2018/03/05 13:20:05 1 ------------***-------- Initializing DPDK --------***------------
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 ------------***-------- Initializing ports -------***------------
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 ------------***------ Initializing scheduler -----***------------
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 ------------***------ Filling FlowFunctions ------***------------
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 ------------***--------- Checking system ---------***------------
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 ------------***---------- Creating ports ---------***------------
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 DEBUG: Port 0 MAC address: 08 00 27 a4 a0 33
[11:20:05]	[Step 4/4] 2018/03/05 13:20:06 0 DEBUG: Port 1 MAC address: 08 00 27 71 63 aa
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 ------------***-------- Initializing ports -------***------------
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 ------------***------ Initializing scheduler -----***------------
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 DEBUG: Scheduler can use cores: [0 1 2 3 4 5 6 7]
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 ------------***------ Filling FlowFunctions ------***------------
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 ------------***--------- Checking system ---------***------------
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 ------------***---------- Creating ports ---------***------------
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 DEBUG: Port 0 MAC address: 08 00 27 2f c9 8c
[11:20:06]	[Step 4/4] 2018/03/05 13:20:07 1 DEBUG: Port 1 MAC address: 08 00 27 35 9f 1e
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 ------------***------ Starting FlowFunctions -----***------------
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start SCHEDULER at 0 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start STOP at scheduler 0 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start unclonable FlowFunction generator 1 at 1 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start unclonable FlowFunction sender 2 at 2 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start unclonable FlowFunction receiver 3 at 3 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start clonable FlowFunction handler 4 at 4 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 DEBUG: Start clonable FlowFunction handler 5 at 5 core
[11:20:07]	[Step 4/4] 2018/03/05 13:20:08 0 ------------***--------- NFF-GO-GO Started --------***------------
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: ---------------
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: System is using 6 cores now. 2 cores are left available.
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: Number of packets in queue for separate:  0
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: Current speed of handler 4 is 0 PKT/S
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: Number of packets in queue for handle:  0
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: Current speed of handler 5 is 0 PKT/S
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: Mempool N 0 used 513 from 32764
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 DEBUG: Mempool N 1 used 128 from 32764
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 ------------***------ Starting FlowFunctions -----***------------
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start SCHEDULER at 0 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start STOP at scheduler 0 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start unclonable FlowFunction receiver 1 at 1 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start unclonable FlowFunction sender 5 at 2 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start clonable FlowFunction handler 2 at 3 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start clonable FlowFunction handler 3 at 4 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 1 DEBUG: Start clonable FlowFunction handler 4 at 5 core
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 IPv4 ICMP checksum mismatch 65049 should be 34102
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 0 TEST FAILED
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 DD: Finished with code TestReportedFailed
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 DD: Trying to kill container for app cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:c4b9580153b7c6e890b621f68f58bac932cf9940cba0f7b6c784b151890369ba
[11:20:08]	[Step 4/4] 2018/03/05 13:20:09 DD: Trying to remove container for app cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2218:nff-go-test-cksum:c4b9580153b7c6e890b621f68f58bac932cf9940cba0f7b6c784b151890369ba
[11:20:09]	[Step 4/4] 2018/03/05 13:20:09 DD: Trying to kill container for app cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:d1578f94425dc8d3c8b5cf13f444e60043113e0bacd83a7e614b2841b3e81c46
[11:20:09]	[Step 4/4] 2018/03/05 13:20:09 DD: Trying to remove container for app cksums_ipv4_icmp_vlan:TestTypeScenario:localhost:2220:nff-go-test-cksum:d1578f94425dc8d3c8b5cf13f444e60043113e0bacd83a7e614b2841b3e81c46
[11:20:09]	[Step 4/4] 2018/03/05 13:20:10 \--- Finished test cksums_ipv4_icmp_vlan --- status: TestReportedFailed
[11:20:09]	[Step 4/4] 2018/03/05 13:20:10 TESTS EXECUTED: 16
[11:20:09]	[Step 4/4] 2018/03/05 13:20:10 PASSED: 11
[11:20:09]	[Step 4/4] 2018/03/05 13:20:10 FAILED: 5
[11:20:09]	[Step 4/4] Process exited with code 105

TestInitEmptyIPv4Packet failing on fresh install

Greetings!

Can I please get a nudge in the right direction on how to diagnose this issue in “packet_test.go”? I am going through the code now, but, wanted to see if this was a common issue.

Configuration:

  • OS - Ubuntu 16.10
  • Go - 1.9.1 (installed from tarball)
  • Compiler - gcc 6.2.0
  • Real HW - MacBookPro13,3 (10.12.6, 16G29)
  • Hypervisor - VMware Fusion 8.5.8 (yep, old)
  • Ethernet - e1000e (82574L Gigabit Network Connection 10d3)
  • Binding - IGB UIO
  • GIT hash - e95c0bf

How could a packet get changed during the “TestInitEmptyIPv4Packet” test? Logs below.

Thanks for any help!
-Timothy

========================================

[DPDK] vagrant@ubuntu-dpdk:~/go/src/github.com/intel-go/yanff$ sudo env PATH=$PATH make testing
Checking for AVX support... AVX and AVX2
make -C packet testing
make[1]: Entering directory '/home/vagrant/go/src/github.com/intel-go/yanff/packet'
Checking for AVX support... AVX and AVX2
go test
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 0 on socket 0
EAL: Detected lcore 2 as core 0 on socket 0
EAL: Detected lcore 3 as core 0 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 4 lcore(s)
EAL: Probing VFIO support...
EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or directory)
EAL: VFIO modules not loaded, skipping VFIO support...
EAL: Module /sys/module/vfio_pci not found! error 2 (No such file or directory)
EAL: Setting up physically contiguous memory...
EAL: Trying to obtain current memory policy.
EAL: Hugepage /dev/hugepages/rtemap_1 is on socket 0
EAL: Hugepage /dev/hugepages/rtemap_0 is on socket 0
EAL: Ask a virtual area of 0x40000000 bytes
EAL: Virtual area found at 0x7fff00000000 (size = 0x40000000)
EAL: Ask a virtual area of 0x40000000 bytes
EAL: Virtual area found at 0x7ffe80000000 (size = 0x40000000)
EAL: Requesting 2 pages of size 1024MB from socket 0
EAL: TSC frequency is ~2903750 KHz
EAL: Master lcore 0 is ready (tid=f7fea8c0;cpuset=[0])
EAL: lcore 2 is ready (tid=ef7fe700;cpuset=[2])
EAL: lcore 3 is ready (tid=eeffd700;cpuset=[3])
EAL: lcore 1 is ready (tid=effff700;cpuset=[1])
EAL: PCI device 0000:03:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:10d3 net_e1000_em
EAL: Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 8086:10d3 net_e1000_em
EAL: PCI memory mapped at 0x7fff40000000
EAL: PCI memory mapped at 0x7fff40020000
EAL: PCI memory mapped at 0x7fff40040000
PMD: eth_em_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x10d3
--- FAIL: TestInitEmptyIPv4Packet (0.00s)
packet_test.go:501: Incorrect result:
got: 00000000000000000000000008004500001c00000000003b00007f00000180090905ffdd0000bbaa0000,
want: 00000000000000000000000008004500001c00000000000000007f00000180090905ffdd0000bbaa0000

--- FAIL: TestInitEmptyIPv6Packet (0.00s)
packet_test.go:526: Incorrect result:
got: 00000000000000000000000086dd6000000000083b00dead000000000000000000000000beaf00000000000000000000000000000000ffdd0000bbaa0000,
want: 00000000000000000000000086dd6000000000080000dead000000000000000000000000beaf00000000000000000000000000000000ffdd0000bbaa0000

FAIL
exit status 1
FAIL github.com/intel-go/yanff/packet 0.605s
Makefile:10: recipe for target 'testing' failed
make[1]: *** [testing] Error 1
make[1]: Leaving directory '/home/vagrant/go/src/github.com/intel-go/yanff/packet'
Makefile:21: recipe for target 'packet' failed
make: *** [packet] Error 2

Race conditions

As new tests point we have some race conditions after recent stopping commit:

  1. Scheduler can sleep and then begin to clone removed flow functions
  2. receive and send can work after port is closed
  3. Generate and other flow function can work after mempools are released

Also we need to re-init ring number to not face problems with big number of rings

Test problems (checksum)

We identifier problem with VLAN at VM, however it doesn't explain why checksum tests fail without VM?

Overhead of nff-go compared to using DPDK with C

Hi,

Calling C functions with CGO has high overhead, how nff-go get around it?

Are there any benchmarks/measurements of similar high pps processing programs to see overhead of nff-go (CGO/Go) compared to using DPDK with C?

Need checksum tests for VLAN tagged packets

We support packets with VLAN tags but there are no tests for them yet. One important area is checksum calculation tests because these tests may be used as examples of correctly using functions for checksum calculation.

Incorrect timings in pcap trace when debug dump is enabled in NAT

When I enable debug dump for NAT in config.go, it starts dumping packets into pcap files. When I view these files I can see that timing information is incorrect. For example I can see a lot of packets have negative timestamps. I cannot trust timing information when it is positive too because timings sometimes jump unpredictably increasing and decreasing.

dump.zip

Wrong debug statistics: sent speed value differs from generator speed value

I changed in low.c multiplier to 1, so it writes packets per second now,
Current speed of fast generator 1 is 6212778 PKT/S, but sent 9229088 PKTs/s
It differs too much, I think its a bug.

DEBUG: ---------------
DEBUG: System is using 6 cores now. 4 cores are left available.
DEBUG: Current speed of all receives: received 4440827 PKTs/s, pushed 4440827 PKTs/s
DEBUG: Current speed of all sends: required 9298656 PKTs/s, sent 9298656 PKTs/s
DEBUG: Current speed of stop ring: freed 4440922 PKTs/s
DEBUG: Number of packets in queue for handle: 0
DEBUG: Current speed of handler 4 is 2961944 PKT/S
DEBUG: Current speed of fast generator 1 is 6201237 PKT/S, target speed is 6000000 PKT/S
DEBUG: Mempool N 0 used 575 from 32764
DEBUG: Mempool N 1 used 262 from 32764
DEBUG: ---------------
DEBUG: System is using 6 cores now. 4 cores are left available.
DEBUG: Current speed of all receives: received 4437748 PKTs/s, pushed 4437748 PKTs/s
DEBUG: Current speed of all sends: required 9254240 PKTs/s, sent 9254240 PKTs/s
DEBUG: Current speed of stop ring: freed 4437869 PKTs/s
DEBUG: Number of packets in queue for handle: 0
DEBUG: Current speed of handler 4 is 2959896 PKT/S
DEBUG: Current speed of fast generator 1 is 6199040 PKT/S, target speed is 6000000 PKT/S
DEBUG: Mempool N 0 used 575 from 32764
DEBUG: Mempool N 1 used 121 from 32764
DEBUG: ---------------
DEBUG: System is using 6 cores now. 4 cores are left available.
DEBUG: Current speed of all receives: received 8907874 PKTs/s, pushed 8907874 PKTs/s
DEBUG: Current speed of all sends: required 18626432 PKTs/s, sent 18626432 PKTs/s
DEBUG: Current speed of stop ring: freed 8907763 PKTs/s
DEBUG: Number of packets in queue for handle: 46
DEBUG: Current speed of handler 4 is 2965938 PKT/S
DEBUG: Current speed of fast generator 1 is 6201941 PKT/S, target speed is 6000000 PKT/S
DEBUG: Mempool N 0 used 575 from 32764
DEBUG: Mempool N 1 used 518 from 32764
DEBUG: ---------------
DEBUG: System is using 6 cores now. 4 cores are left available.
DEBUG: Current speed of all receives: received 4411869 PKTs/s, pushed 4411869 PKTs/s
DEBUG: Current speed of all sends: required 9229088 PKTs/s, sent 9229088 PKTs/s
DEBUG: Current speed of stop ring: freed 4412054 PKTs/s
DEBUG: Number of packets in queue for handle: 0
DEBUG: Current speed of handler 4 is 2970708 PKT/S
DEBUG: Current speed of fast generator 1 is 6212778 PKT/S, target speed is 6000000 PKT/S
DEBUG: Mempool N 0 used 575 from 32764
DEBUG: Mempool N 1 used 176 from 32764

Duplicated code

We have tons of duplicated code now.

As first step to eliminate this we need to remove CheckFatal from all tests and examples and place it to flow package as default error checker.

Go vet: possible misuse of unsafe.Pointer

Problem: many (by measures of "awesome-go") go vet warnings.

There are many integer to pointer casts rule triggers in go vet report for Yanff.

Most (all?) cases go from pointer->uintptr->pointer, so it should not be unsafe as lint
assumes (it references Go 1.3a changes to GC).

What do you think about these solutions ("workarounds", actually):

  1. Add more methods like unparsed, which return unsafe.Pointer with offset calculations applied, without additional type cast to uintptr. This way, 3-level casts will go away and related lint warnings will go avay.
    Note: go vet allows this constructions: unsafe.Pointer(uintptr(p) + offset).

  2. Move this kind of data casts (maywith struct itself) in separate package. Go can do cross-package inlining, so no performance will be lost, right? Report on Yanff will increase.

Related to adding YANFF to awesome-go.

panic: runtime error: invalid memory address or nil pointer dereference during merge of copied and generated flows.

Program failed with error:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0xa0 pc=0x4e1155]

goroutine 21 [running, locked to thread]:
github.com/intel-go/nff-go/packet.(*Packet).GetRawPacketBytes(...)
/projects/src/github.com/intel-go/nff-go/packet/packet.go:700
github.com/intel-go/nff-go/flow.pcopy(0x69a200, 0xc42000c120, 0xc4201a40c0, 0xc42018c000, 0x0, 0x0, 0x0)
/projects/src/github.com/intel-go/nff-go/flow/flow.go:1139 +0x435
github.com/intel-go/nff-go/flow.(*scheduler).startFF.func1(0xc42018a140, 0x3)
/projects/src/github.com/intel-go/nff-go/flow/scheduler.go:202 +0x238
created by github.com/intel-go/nff-go/flow.(*scheduler).startFF
/projects/src/github.com/intel-go/nff-go/flow/scheduler.go:196 +0x22a

Code:

package main

import (
	"log"
	"sync"
	"sync/atomic"
	"time"

	"github.com/intel-go/nff-go/flow"
	"github.com/intel-go/nff-go/packet"
	"github.com/intel-go/nff-go/test/stability/stabilityCommon"
)

var (
	totalPackets uint64 = 100

	payloadSize uint   = 16

	sentPacketsGroup1 uint64
	
	recvPackets       uint64
	testDoneEvent *sync.Cond
	progStart     time.Time

	// T second timeout is used to let generator reach required speed
	// During timeout packets are skipped and not counted
	T = 10 * time.Second
)

func main() {
	// Init NFF-GO system
	config := flow.Config{
		DPDKArgs: []string{"--log-level=0"},
	}
	flow.CheckFatal(flow.SystemInit(&config))
	var m sync.Mutex
	testDoneEvent = sync.NewCond(&m)

	flow1 := flow.SetGenerator(generatePacketGroup1, nil)

	flow2 := flow.SetGenerator(generatePacketGroup1, nil)


	flow.CheckFatal(flow.SetStopper(flow2))
	var err error
	flow2, err = flow.SetCopier(flow1)
	flow.CheckFatal(err)

	checkedFlow, err := flow.SetMerger(flow1, flow2)
	flow.CheckFatal(err)
	
	flow.CheckFatal(flow.SetHandler(checkedFlow, checkPackets, nil))
	flow.CheckFatal(flow.SetStopper(checkedFlow))
	
	// Start pipeline
	go func() {
		err = flow.SystemStart()
	}()
	flow.CheckFatal(err)
	progStart = time.Now()
	
	// Wait for enough packets to arrive
	testDoneEvent.L.Lock()
	testDoneEvent.Wait()
	testDoneEvent.L.Unlock()
}


func generatePacketGroup1(pkt *packet.Packet, context flow.UserContext) {
	if pkt == nil {
		log.Fatal("Failed to create new packet")
	}
	if packet.InitEmptyIPv4UDPPacket(pkt, payloadSize) == false {
		log.Fatal("Failed to init empty packet")
	}

	// We do not consider the start time of the system in this test
	if time.Since(progStart) >= T && atomic.LoadUint64(&recvPackets) < totalPackets {
		atomic.AddUint64(&sentPacketsGroup1, 1)
	}
}


// Count and check packets in received flow
func checkPackets(pkt *packet.Packet, context flow.UserContext) {
	if time.Since(progStart) < T || stabilityCommon.ShouldBeSkipped(pkt) {
		return
	}
	if atomic.AddUint64(&recvPackets, 1) >= totalPackets {
		testDoneEvent.Signal()
		return
	}
}

By the way, there is no such problem in the same code with fast generator!

First I tried the same code with many totalpackets, got really huge amount of the same warnings:
"WARNING: GeneratePacketFromByte: Cannot append mbuf", then run with 100 packets and got this error.

Need tests for using NAT in VLAN tagged network

NAT example supports VLAN tags, but there are no tests for it. It is necessary to add such tests. For this it is necessary to add more virtual interfaces between VMs or an ability to reconvigure networking settings on Linux interfaces to add/remove VLAN tags.

Stable version

Hi, for now we a referencing the latest commit of master. When can we expect a stable tag or release?

linker error multiple definition of `rte_distributor_request_pkt_v20'

Hi there, I tried this both on debian unstable and archlinux with the same result:
In Debian, I installed the dpdk dpdk-doc and dpdk-dev packages before starting.
In Archlinux, I pacaur -S dpdk

I did observe on both occasions both the depends script and the Makefile do not detect the intalled 17.11 version of dpdk which was more recent than 17.08 version as fetched by the Makefile.

/home/dma2/Code/go/src/github.com/intel-go/nff-go/dpdk/dpdk-17.08/x86_64-native-linuxapp-gcc/lib/librte_distributor.a(rte_distributor_v20.o): In function rte_distributor_request_pkt_v20': rte_distributor_v20.c:(.text+0x0): multiple definition of rte_distributor_request_pkt_v20'
/home/dma2/Code/go/src/github.com/intel-go/nff-go/dpdk/dpdk-17.08/x86_64-native-linuxapp-gcc/lib/librte_distributor.a(rte_distributor_v20.o):rte_distributor_v20.c:(.text+0x0): first defined here
/home/dma2/Code/go/src/github.com/intel-go/nff-go/dpdk/dpdk-17.08/x86_64-native-linuxapp-gcc/lib/librte_distributor.a(rte_distributor_v20.o): In function rte_distributor_poll_pkt_v20': rte_distributor_v20.c:(.text+0x50): multiple definition of rte_distributor_poll_pkt_v20'

Thank you.

ICMP checksum calculation produces segmentation fault

After recent changes to ICMP checksum calculation NAT example crashes when pinged:

DEBUG: ---------------
DEBUG: System is using 7 cores now. 1 cores are left available.
DEBUG: Number of packets in queue for split:  0
DEBUG: Current speed of splitter 2 is 0 PKT/S
DEBUG: Number of packets in queue for split:  0
DEBUG: Current speed of splitter 4 is 0 PKT/S
DEBUG: Mempool N 0 used 128 from 32764
DEBUG: Mempool N 1 used 128 from 32764
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5056ca]

goroutine 57 [running, locked to thread]:
github.com/intel-go/yanff/packet.calculateDataChecksum(0x0, 0x38, 0x0, 0xc42072a000)
        /home/ubuntu/go/src/github.com/intel-go/yanff/packet/checksum.go:148 +0x1a
github.com/intel-go/yanff/packet.CalculateIPv4ICMPChecksum(0x7fa415c0134e, 0x7fa415c01362, 0x0, 0x7fa48c0091e0)
        /home/ubuntu/go/src/github.com/intel-go/yanff/packet/checksum.go:292 +0x4c
github.com/intel-go/yanff/examples/nat.setIPv4ICMPChecksum(0x7fa415c012c0, 0xc420720101)
        /home/ubuntu/go/src/github.com/intel-go/yanff/examples/nat/cksum.go:68 +0xaf
github.com/intel-go/yanff/examples/nat.(*ipv4Port).handleICMP(0xc4200a63c0, 0x7fa415c012c0, 0x0)
        /home/ubuntu/go/src/github.com/intel-go/yanff/examples/nat/translation.go:366 +0xf4
github.com/intel-go/yanff/examples/nat.PublicToPrivateTranslation(0x7fa415c012c0, 0xa7d0c0, 0xb7eda0, 0xa7d0c0)
        /home/ubuntu/go/src/github.com/intel-go/yanff/examples/nat/translation.go:95 +0x6ce
github.com/intel-go/yanff/flow.split(0x703f00, 0xc42007c4e0, 0xc42009e1e0, 0xc4200b8000, 0x7fa49dc772d0, 0xb7eda0)
        /home/ubuntu/go/src/github.com/intel-go/yanff/flow/flow.go:1183 +0x5cd
github.com/intel-go/yanff/scheduler.(*Scheduler).startClonable.func1(0xc42005e0b0, 0x5)
        /home/ubuntu/go/src/github.com/intel-go/yanff/scheduler/scheduler.go:201 +0xe7
created by github.com/intel-go/yanff/scheduler.(*Scheduler).startClonable
        /home/ubuntu/go/src/github.com/intel-go/yanff/scheduler/scheduler.go:196 +0x1cc

You can use https://github.com/intel-go/yanff/wiki/NAT-example instruction to run NAT example.

Kernel Panic after closing

Hi, I'm using nff-go and facing a kernel panic problem.

Here is a sample code:

https://gist.github.com/mkfsn/139274a9d0368c76c86f13ea0aa41fcc

The devices package is similar to devbind script in DPDK, for binding and unbinding driver (e.g. virtio_net, uio_pci_generic)

I use iperf3 to send packets and if I close the nff runner (including unbinding uio driver, binding to original kernel driver, and bringing up the network device) while sending packets, kernel sometimes panic:

Apr 16 07:21:27 ubuntu kernel: [15074.868458] virtio-pci 0000:00:04.0: virtio_pci: leaving for legacy driver
Apr 16 07:21:27 ubuntu kernel: [15074.882968] net eth1: netmap queues/slots: TX 1/256, RX 1/256
Apr 16 07:21:27 ubuntu kernel: [15074.882974] 287.301852 [ 746] virtio_netmap_attach      virtio attached txq=1, txd=256 rxq=1, rxd=256
Apr 16 07:21:27 ubuntu kernel: [15074.920581] BUG: unable to handle kernel NULL pointer dereference at 000000000000000d
Apr 16 07:21:27 ubuntu kernel: [15074.920627] IP: [<000000000000000d>] 0xd
Apr 16 07:21:27 ubuntu kernel: [15074.920649] PGD 0
Apr 16 07:21:27 ubuntu kernel: [15074.920661] Oops: 0010 [#1] SMP
Apr 16 07:21:27 ubuntu kernel: [15074.920679] Modules linked in: nfnetlink_queue nfnetlink xt_NFQUEUE xt_NETMAP iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle xt_mark uio_pci_generic uio ip6table_filter ip6_tables iptable_filter ip_tables x_tables cirrus hid_generic ttm usbhid drm_kms_helper hid joydev psmouse crct10dif_pclmul crc32_pclmul drm ghash_clmulni_intel ppdev aesni_intel fb_sys_fops aes_x86_64 syscopyarea lrw gf128mul glue_helper input_leds floppy ablk_helper serio_raw cryptd sysfillrect parport_pc sysimgblt parport i2c_piix4 8250_fintek pata_acpi mac_hid virtio_net(O) netmap(O) autofs4
Apr 16 07:21:27 ubuntu kernel: [15074.921002] CPU: 2 PID: 2864 Comm: nff Tainted: G           O    4.4.98 #1
Apr 16 07:21:27 ubuntu kernel: [15074.921035] Hardware name: OpenStack Foundation OpenStack Nova, BIOS 1.10.2-1ubuntu1~cloud0 04/01/2014
Apr 16 07:21:27 ubuntu kernel: [15074.921078] task: ffff880236272a00 ti: ffff880037f90000 task.ti: ffff880037f90000
Apr 16 07:21:27 ubuntu kernel: [15074.921113] RIP: 0010:[<000000000000000d>]  [<000000000000000d>] 0xd
Apr 16 07:21:27 ubuntu kernel: [15074.921144] RSP: 0018:ffff880037f93c18  EFLAGS: 00010202
Apr 16 07:21:27 ubuntu kernel: [15074.921169] RAX: 000000000000000d RBX: ffff880234c8c9e0 RCX: 0000000000000001
Apr 16 07:21:27 ubuntu kernel: [15074.921202] RDX: ffff88021dbff800 RSI: ffff8802349ee1a8 RDI: ffff88021dbff800
Apr 16 07:21:27 ubuntu kernel: [15074.921235] RBP: ffff880037f93c38 R08: 0000000000000000 R09: 0000000000000000
Apr 16 07:21:27 ubuntu kernel: [15074.921268] R10: ffff8802349ee1a8 R11: ffff880235618210 R12: ffff88021d94b698
Apr 16 07:21:27 ubuntu kernel: [15074.921301] R13: 0000000000000000 R14: ffff8802362fe620 R15: ffff880043365d80
Apr 16 07:21:27 ubuntu kernel: [15074.921335] FS:  0000000000000000(0000) GS:ffff88023fd00000(0000) knlGS:0000000000000000
Apr 16 07:21:27 ubuntu kernel: [15074.921372] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Apr 16 07:21:27 ubuntu kernel: [15074.921399] CR2: 000000000000000d CR3: 0000000001e0a000 CR4: 00000000003406e0
Apr 16 07:21:27 ubuntu kernel: [15074.921436] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Apr 16 07:21:27 ubuntu kernel: [15074.921469] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Apr 16 07:21:27 ubuntu kernel: [15074.921502] Stack:
Apr 16 07:21:27 ubuntu kernel: [15074.921512]  ffffffffc01924c4 ffff880235618200 0000000000000008 ffff8802349ee1a8
Apr 16 07:21:27 ubuntu kernel: [15074.921551]  ffff880037f93c80 ffffffff812120a4 ffff8802349ee1a8 ffff880235618210
Apr 16 07:21:27 ubuntu kernel: [15074.921589]  ffff880236272a00 ffffffff82109d50 ffff880235618200 ffff8802352d0800
Apr 16 07:21:27 ubuntu kernel: [15074.921629] Call Trace:
Apr 16 07:21:27 ubuntu kernel: [15074.921645]  [<ffffffffc01924c4>] ? uio_release+0x34/0x60 [uio]
Apr 16 07:21:27 ubuntu kernel: [15074.922814]  [<ffffffff812120a4>] __fput+0xe4/0x220
Apr 16 07:21:27 ubuntu kernel: [15074.924372]  [<ffffffff8121221e>] ____fput+0xe/0x10
Apr 16 07:21:27 ubuntu kernel: [15074.925588]  [<ffffffff8109ef71>] task_work_run+0x81/0xa0
Apr 16 07:21:27 ubuntu kernel: [15074.926727]  [<ffffffff81083e91>] do_exit+0x2e1/0xb00
Apr 16 07:21:27 ubuntu kernel: [15074.927870]  [<ffffffff8183de97>] ? wait_for_completion+0x37/0x140
Apr 16 07:21:27 ubuntu kernel: [15074.929022]  [<ffffffff81084733>] do_group_exit+0x43/0xb0
Apr 16 07:21:27 ubuntu kernel: [15074.930160]  [<ffffffff81090992>] get_signal+0x292/0x600
Apr 16 07:21:27 ubuntu kernel: [15074.931281]  [<ffffffff8102e567>] do_signal+0x37/0x6f0
Apr 16 07:21:27 ubuntu kernel: [15074.932386]  [<ffffffff8112e484>] ? kprobe_flush_task+0x94/0x130
Apr 16 07:21:27 ubuntu kernel: [15074.933513]  [<ffffffff810a9c72>] ? finish_task_switch+0x1b2/0x220
Apr 16 07:21:27 ubuntu kernel: [15074.934664]  [<ffffffff8183ce06>] ? __schedule+0x3b6/0xa30
Apr 16 07:21:27 ubuntu kernel: [15074.935808]  [<ffffffff8100320c>] exit_to_usermode_loop+0x8c/0xd0
Apr 16 07:21:27 ubuntu kernel: [15074.936920]  [<ffffffff81003c16>] prepare_exit_to_usermode+0x26/0x30
Apr 16 07:21:27 ubuntu kernel: [15074.938007]  [<ffffffff818420e5>] retint_user+0x8/0x10
Apr 16 07:21:27 ubuntu kernel: [15074.939100] Code:  Bad RIP value.
Apr 16 07:21:27 ubuntu kernel: [15074.940185] RIP  [<000000000000000d>] 0xd
Apr 16 07:21:27 ubuntu kernel: [15074.941276]  RSP <ffff880037f93c18>
Apr 16 07:21:27 ubuntu kernel: [15074.942338] CR2: 000000000000000d
Apr 16 07:21:27 ubuntu kernel: [15074.945828] ---[ end trace fb8bf404b90ddb84 ]---
Apr 16 07:21:27 ubuntu kernel: [15074.946862] Fixing recursive fault but reboot is needed!

I didn't get any error when closing but "stopped successfully".

I would appreciate if you have any suggestions or ideas.

We need to clean Merge test

Now we have three merges:

  1. inside segment
  2. outside segment
  3. between outside and some branches from segment

Need to consider all these variants in testMerge

Input output test

We need a stability test which will test
SetReceiveKNI
SetReceiveFile
SetGenerator
SetFastGenerator
SetVectorFastGenerator
SetSendKNI
SetSendFile
Test should

  1. have a structure like testDivide
  2. be executed as go test
  3. be named testInputOutput

(choose yourself who will make it)

Build problem.

Hitting an error at top level make. Smells like a GOROOT problem, but I am using a standard Ubuntu 16.04 install. One difference seems to be the Ubuntu install installs to /usr/lib/go-1.9 ran than /usr/local. Spinning up a new VM using the standard location but having issues with our cloud. Seen this before?

make[2]: Entering directory '/mnt/Code/gocode/src/github.com/intel-go/nff-go/test/framework'
Checking for AVX support... AVX and AVX2
go generate
stringer: checking package: types.go:8:2: could not import encoding/json (can't find import: )
types.go:12: running "stringer": exit status 1
Makefile:11: recipe for target 'apptype_string.go' failed
make[2]: *** [apptype_string.go] Error 1
make[2]: Leaving directory '/mnt/Code/gocode/src/github.com/intel-go/nff-go/test/framework'
../mk/intermediate.mk:13: recipe for target 'framework' failed
make[1]: *** [framework] Error 2
make[1]: Leaving directory '/mnt/Code/gocode/src/github.com/intel-go/nff-go/test'
mk/intermediate.mk:13: recipe for target 'test' failed
make: *** [test] Error 2

go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/mnt/Code/gocode"
GORACE=""
GOROOT="/usr/lib/go-1.9"
GOTOOLDIR="/usr/lib/go-1.9/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build721947677=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

go version
go version go1.9.4 linux/amd64

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.