Open iyerravi opened 6 years ago
This is a known issue. ff_veth_set_gateway
will only create a default route, so when port 0 has created the default route, the other ports won't success.
You can just use tools/route
to configure other ports' routing table.
hi, I am running a fstack process with 4 ports. and when i try to assign ip and gateway from config.ini the process throws error in the function ff_veth_set_gateway.
Because of this, my ping to the ip on only 1 port works. the rest 3 doesnt work.
pasting config.ini
dpdk
Hexadecimal bitmask of cores to run on.
lcore_mask=2 channel=4 promiscuous=1 numa_on=1
TCP segment offload, default: disabled.
tso=0
HW vlan strip, default: enabled.
vlan_strip=1
enabled port list
#
EBNF grammar:
#
exp ::= num_list {"," num_list}
num_list ::= |
range ::="-"
num ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
#
examples
0-3 ports 0, 1,2,3 are enabled
1-3,4,7 ports 1,2,3,4,7 are enabled
port_list=0-3
Port config section
Correspond to dpdk.port_list's index: port0, port1...
port0 addr=10.10.10.1 netmask=255.255.255.0 broadcast=10.10.10.255 gateway=10.10.10.2 tcp_port=80,443,9001 port1 addr=11.11.11.1 netmask=255.255.255.0 broadcast=11.11.11.255 gateway=11.11.11.2 tcp_port=80,443,9001 port2 addr=12.12.12.1 netmask=255.255.255.0 broadcast=12.12.12.255 gateway=12.12.12.2 tcp_port=80,443,9001 port3 addr=13.13.13.1 netmask=255.255.255.0 broadcast=13.13.13.255 gateway=13.13.13.2 tcp_port=80,443,9001
lcore list used to handle this port
the format is same as port_list
lcore_list= 0
Packet capture path, this will hurt performance
pcap=./a.pcap
Kni config: if enabled and method=reject,
all packets that do not belong to the following tcp_port and udp_port
will transmit to kernel; if method=accept, all packets that belong to
the following tcp_port and udp_port will transmit to kernel.
[kni]
enable=1 method=reject
The format is same as port_list
tcp_port=80,443,9001
udp_port=53
FreeBSD network performance tuning configurations.
Most native FreeBSD configurations are supported.
freebsd.boot hz=100
Block out a range of descriptors to avoid overlap
with the kernel's descriptor space.
You can increase this value according to your app.
fd_reserve=1024
kern.ipc.maxsockets=262144
net.inet.tcp.syncache.hashsize=4096 net.inet.tcp.syncache.bucketlimit=100
net.inet.tcp.tcbhashsize=65536
kern.ncallout=262144
freebsd.sysctl kern.ipc.somaxconn=32768 kern.ipc.maxsockbuf=16777216
net.link.ether.inet.maxhold=5
net.inet.tcp.fast_finwait2_recycle=1 net.inet.tcp.sendspace=32765 net.inet.tcp.recvspace=32765 net.inet.tcp.nolocaltimewait=1 net.inet.tcp.cc.algorithm=cubic net.inet.tcp.sendbuf_max=16777216 net.inet.tcp.recvbuf_max=16777216 net.inet.tcp.sendbuf_auto=1 net.inet.tcp.recvbuf_auto=1 net.inet.tcp.sendbuf_inc=16384 net.inet.tcp.recvbuf_inc=524288 net.inet.tcp.sack.enable=1 net.inet.tcp.blackhole=1 net.inet.tcp.msl=2000 net.inet.tcp.delayed_ack=0
net.inet.udp.blackhole=1 net.inet.ip.redirect=0
console logs of process:
invalid proc_id:-1, use default 0
EAL: Detected 80 lcore(s) EAL: Auto-detected process type: PRIMARY EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: PCI device 0000:01:00.0 on NUMA socket 0 EAL: probe driver: 8086:1521 net_e1000_igb EAL: PCI device 0000:01:00.1 on NUMA socket 0 EAL: probe driver: 8086:1521 net_e1000_igb EAL: PCI device 0000:06:00.0 on NUMA socket 0 EAL: probe driver: 8086:1521 net_e1000_igb EAL: PCI device 0000:06:00.1 on NUMA socket 0 EAL: probe driver: 8086:1521 net_e1000_igb EAL: PCI device 0000:06:00.2 on NUMA socket 0 EAL: probe driver: 8086:1521 net_e1000_igb EAL: PCI device 0000:06:00.3 on NUMA socket 0 EAL: probe driver: 8086:1521 net_e1000_igb EAL: PCI device 0000:81:00.0 on NUMA socket 1 EAL: probe driver: 8086:10fb net_ixgbe EAL: PCI device 0000:81:00.1 on NUMA socket 1 EAL: probe driver: 8086:10fb net_ixgbe lcore: 1, port: 0, queue: 0 lcore: 1, port: 1, queue: 0 lcore: 1, port: 2, queue: 0 lcore: 1, port: 3, queue: 0 create mbuf pool on socket 0 create ring:dispatch_ring_p0_q0 success, 2047 ring entries are now free! create ring:dispatch_ring_p1_q0 success, 2047 ring entries are now free! create ring:dispatch_ring_p2_q0 success, 2047 ring entries are now free! create ring:dispatch_ring_p3_q0 success, 2047 ring entries are now free Port 0 MAC: b4 96 91 28 c4 fc RX checksum offload supported TX ip checksum offload supported TX TCP&UDP checksum offload supported TSO is disabled port[0]: rss table size: 128 set port 0 to promiscuous mode ok Port 1 MAC: b4 96 91 28 c4 fd RX checksum offload supported TX ip checksum offload supported TX TCP&UDP checksum offload supported TSO is disabled port[1]: rss table size: 128 set port 1 to promiscuous mode ok Port 2 MAC: b4 96 91 28 c4 fe RX checksum offload supported TX ip checksum offload supported TX TCP&UDP checksum offload supported TSO is disabled port[2]: rss table size: 128 set port 2 to promiscuous mode ok Port 3 MAC: b4 96 91 28 c4 ff RX checksum offload supported TX ip checksum offload supported TX TCP&UDP checksum offload supported TSO is disabled port[3]: rss table size: 128 set port 3 to promiscuous mode ok
Checking link status........................................done Port 0 Link Up - speed 1000 Mbps - full-duplex Port 1 Link Up - speed 1000 Mbps - full-duplex Port 2 Link Up - speed 1000 Mbps - full-duplex Port 3 Link Up - speed 1000 Mbps - full-duplex link_elf_lookup_symbol: missing symbol hash table link_elf_lookup_symbol: missing symbol hash table Timecounters tick every 10.000 msec Timecounter "ff_clock" frequency 100 Hz quality 1 f-stack-0: Ethernet address: b4:96:91:28:c4:fc f-stack-1: Ethernet address: b4:96:91:28:c4:fd ff_veth_set_gateway failed f-stack-2: Ethernet address: b4:96:91:28:c4:fe ff_veth_set_gateway failed f-stack-3: Ethernet address: b4:96:91:28:c4:ff ff_veth_set_gateway failed sockfd:1024