hao
9f7a1423a0
Added F-Stack FreeBSD support (This is a part of the research work at RCSLab, University of Waterloo)
2022-05-31 19:46:09 -04:00
fengbojiang
791e096154
Set lib/ DEBUG mode default.
2022-05-16 15:49:24 +08:00
fengbojiang
73cf01b51d
Merge branch 'dev' of https://github.com/F-Stack/f-stack into dev
2022-05-07 12:11:47 +08:00
fengbojiang
b874712e25
FF_USE_PAGE_ARRAY compatible DPDK 20.11.
2022-05-07 12:05:35 +08:00
fengbojiang
021aaded2c
Support zero copy while call `ff_write`, you can enable it by modify ‘FF_ZC_SEND=1' in `lib/Makefile`.
...
`FF_ZC_SEND` is same as `FF_USE_PAGE_ARRAY`, it will improve performance slightly in some scenarios, need to be tested in combination with real applications.
You can enable both compilation options at the same time or separately.
2022-05-07 12:02:49 +08:00
Fidaullah Noonari
f159b88fa6
remove for loop
2022-04-25 12:55:15 +05:00
Fidaullah Noonari
7aaa203ad6
remove cmsg_len error
2022-04-22 12:03:55 +05:00
Fidaullah Noonari
584a11ee03
ff_syscall_wrapper.c: add linux_cmsghdr and its support in recvmsg
...
add support for IP_RECVTTL and IP_RECVTOS
2022-04-22 11:22:44 +05:00
dingyuan
c974c5bfbb
Optimize random function in ff_compat.c
2022-04-08 15:06:40 +08:00
fengbojiang
b963106775
FF_USE_PAGE_ARRAY compatible DPDK 19.11.
2022-04-08 15:05:46 +08:00
johnjiang
405496bac1
Merge pull request #621 from ibtisam-tariq/feature/multiple_pci_whitelist
...
Add support for multiple `pci_whitelist` in `config.ini`.
2022-03-05 11:50:01 +08:00
Björn Svensson
24a9ac3341
Avoid leaks after errors in freebsd config handler
...
Freeing allocated memory in an error flow. Currently this would
most likely not occure but a safeguard for future changes.
2022-02-11 17:05:02 +01:00
Björn Svensson
2445361818
Renaming vip6_cfg_hander() to vip6_cfg_handler()
...
Corrected the output of an error log as well.
2022-02-11 17:04:41 +01:00
Björn Svensson
1df9798077
Correcting check of config value for vip_addr6
...
Updated for code consistency, but checking the IPv4 vip_addr
pointer might have given problems for IPv6 only configs.
2022-02-11 17:03:03 +01:00
johnjiang
f35d059e51
Revert "Fix 'FF_KNI' ifdef in Makefile"
2022-01-10 15:39:36 +08:00
thegreathir
dfe277f731
Fix 'FF_KNI' ifdef in Makefile
2021-12-28 13:57:06 +03:30
Ibtisam Tariq
f4871358c3
Add support to set interface name of each port in `config.ini`.
2021-11-04 09:58:24 +05:00
Ibtisam Tariq
a7826598d4
Add support for multiple `pci_whitelist` in `config.ini`.
2021-11-04 08:54:30 +05:00
fengbojiang
e091500c32
fix ‘__uintptr_t’ error.
2021-10-18 19:57:01 +08:00
fengbojiang
64c543441e
fix kqueue can't add multi event onetime, modify struct event fromm freebsd11 to freebsd13.
2021-10-18 19:36:31 +08:00
fengbojiang
f318b88d4e
Modify net.inet.tcp.functions_default from bbr to freebsd, because extra
...
stacks(bbr and rack) can't work normaly now.
2021-10-15 12:52:22 +08:00
fengbojiang
da4b496cab
Netgraph and ipfw for FreeBSD 13.0.
2021-10-12 18:59:42 +08:00
fengbojiang
3ae8012231
Merge branch 'dev' into freebsd13
2021-09-30 19:58:08 +08:00
fengbojiang
21cfeb4372
Support extra tcp stacks, rack and bbr.
2021-09-23 15:16:09 +08:00
fengbojiang
a08a136a15
modify licence.
2021-09-18 16:48:25 +08:00
fengbojiang
4093ffd426
Update LICENCE.
2021-09-18 16:05:45 +08:00
fengbojiang
9dcb6a7622
Add lib/ff_subr_epoch.c.
2021-09-18 15:10:42 +08:00
fengbojiang
8fe2bf87f3
FreeBSD13 can simply work.
2021-09-18 14:50:06 +08:00
fengbojiang
63f0426fdf
fix some issues.
2021-09-16 15:30:22 +08:00
fengbojiang
81dd6c7a24
If process_dispatch_ring() has data packet to be processed and it is considered non-idle state.
2021-09-02 12:09:09 +08:00
fengbojiang
0508c8b8ec
The CPU usage of packet_dispatcher() is modified to usr.
2021-09-02 12:04:32 +08:00
fengbojiang
0b4a084c8a
fix a plurality of packets may not statistics in ff_traffic.rx_packets and ff_traffic.rx_bytes.
2021-09-02 11:47:13 +08:00
fengbojiang
e7b7fb6cc9
FreeBSD: Upgrade to FreeBSD-releng-13.0 compiled, to be tested.
2021-08-31 19:00:09 +08:00
fengbojiang
4e3599d820
Support set multi virtual IPv4/IPv6 net addrs in `config.ini`, instead of use `ff_ifconfig`.
...
Close #421 .
2021-06-16 19:26:52 +08:00
fengbojiang
2ea8dd153c
modify pcap config.
2021-06-16 19:06:45 +08:00
Hawker
51108f9c2e
support `IPV6_RECVPKTINFO`
2021-03-06 19:19:03 +08:00
Hawker
d428f7900c
Support IPPROTO_IPV6
...
f-stack中缺乏对`IPPROTO_IPV6`协议相关选项`IPV6_V6ONLY`的支持;无法在ipv6兼容ipv4场景进行网络通信。调用setsockopt时会出现失败。
2021-03-06 19:19:03 +08:00
fengbojiang
7b8cf09355
Support DPDK 20.11.0(LTS).
2021-03-06 19:18:57 +08:00
fengbojiang
4c0b1abdf1
upgrade F-STACK_VERSION to 1.21.
2021-03-06 19:18:57 +08:00
fengbojiang
d96a9d10f4
modify `struct linux_sockaddr` same to `struct sockaddr` in linux.
2021-03-06 19:18:56 +08:00
fengbojiang
527e34d48a
Fix some issues of ff msg.
2021-03-06 19:18:53 +08:00
fengbojiang(姜凤波)
cddb7cd030
Add `ff_regist_pcblddr_fun` to regist a pcb lddr function in F-Stack.
...
If There are multiple ips, and F-Stack client application can choose a source ip by yourself, instead always use the first ip.
2021-03-06 19:18:52 +08:00
zengyi1001
d53ebd8f3c
Add IPv6 net addr parameters in config
...
Co-authored-by: fengbojiang <fengbojiang@tencent.com>
2021-03-06 19:18:52 +08:00
fengbojiang
8fb48d649e
Fix #560 , Wrong msg_flags in struct msghdr after calling ff_recvmsg in a Linux application.
2021-03-06 19:18:52 +08:00
freak82
0816b9cb45
Fix #568 , Insufficient condition in ff_rte_frm_extcl function.
2021-03-06 19:18:52 +08:00
Jianfeng Tan
06c3e57024
fix use after free issue in mbuf free
...
Two kinds of mbuf are used in f-stack: freebsd mbuf and dpdk mbuf.
freebsd mbufs are metadata used in freebsd stack, and their data
pointers (m_data) point to dpdk mbuf's data (buf_addr). And they have
their own chain, like this:
bsd_mbuf1 -> bsd_mbuf2 -> bsd_mbuf3
\ \ \
dpdk_mbuf1 -> dpdk_mbuf2 -> dpdk_mbuf3
Considering the map relationship,
- m_freem() is corresponding to rte_pktmbuf_free(), is to free the whole
chain of mbufs.
- m_free() is corresponding to rte_pktmbuf_free_seg(), is to free the
specified mbuf segment.
The current implementation in f-stack uses rte_pktmbuf_free() for
m_free(). This leads to mbufs, which are still in use, be freed
unexpectedly. For example, if the bsd_mbuf1 is trimed into zero length,
bsd will invoke m_free() to free the specified segment, however, the
whole mbuf chain is freed by calling rte_pktmbuf_free().
#0 rte_pktmbuf_free (m=0x22006fb480)
#1 in ff_dpdk_pktmbuf_free (m=0x22006fb480)
#2 in ff_mbuf_ext_free (m=0x7ffff7f82800, arg1=0x22006fb480, arg2=0x0)
#3 in mb_free_ext (m=0x7ffff7f82800)
#4 in m_free (m=0x7ffff7f82800)
#5 in sbcompress (sb=, m=0x7ffff7f82800, n=)
#6 in sbappendstream_locked (sb=, m=0x7ffff7f82800, flags=0)
The fix is straightforward. Use the correct API for segment free.
Reported-by: Yong-Hao Zou <yonghaoz1994@gmail.com>
Signed-off-by: Jianfeng Tan <henry.tjf@antgroup.com>
2021-03-06 19:18:52 +08:00
Hawker
c0c877b54c
update comments
2021-03-06 19:18:52 +08:00
Hawker
6fb0694d16
update comments
2021-03-06 19:18:52 +08:00
Hawker
dc643060d1
update comments
2021-03-06 19:18:52 +08:00
Hawker
8155960f54
update create_tcp_flow parameter
2021-03-06 19:18:51 +08:00