Commit Graph

593 Commits

Author SHA1 Message Date
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
Hawker b2b09b1a1e Bug:CLR_FD_BIT is undefined 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
Hawker 170b9c333f update init_flow 2021-03-06 19:18:50 +08:00
Hawker d5f823fe01 Replace deprecated filter api with generic flowapi 2021-03-06 19:18:50 +08:00
Xin Wang b5a6261dce Fix compile error of micro_thread with gcc 8.3. 2021-03-06 19:18:50 +08:00
patrick.zeng 41b16a2c91 Add codedog configuration file .code.yml 2021-03-06 19:18:48 +08:00
Hawker 55151ab9d2 Bugfix: support rte_flow_isolate for multi lcore (#562)
* Bugfix: support rte_flow_isolate

init flow isolate mode only run once
2020-11-25 11:31:04 +08:00
fengbojiang 62653ab1a5 Fix bug of `sysctl` in tools/compat/sysctl.c.
The ff msg shouldn't to free while `ff_ipc_send` success but `ff_ipc_recv` failed (such as F-Stack app are breaking by gdb).
2020-11-21 21:27:55 +08:00
johnjiang a4f09e1c9b Merge pull request #559 from hawkxiang/parse_multi_processes_config
Config: Support parse "--file-prefix"&"--pci-whitelist" for multi-processes
2020-11-19 14:43:26 +08:00
zhangxiang10 eff1a060f0 解析file_prefix&pci-whitelist配置 2020-11-17 19:19:19 +08:00
zhangxiang10 c661338e72 解析file_prefix&pci-whitelist配置 2020-11-17 19:04:23 +08:00
fengbojiang 3f8e2795fc Add doc of `ndp` tool. 2020-10-27 22:45:06 +08:00
johnjiang 4a90157670 Merge pull request #554 from chopin11/feature-tools-ndp-for-ipv6-neigh
feature: add ndp tool for ipv6 neighbor
2020-10-27 21:26:46 +08:00
chopin c090a0d78c feature: add ndp tool for ipv6 neighbor 2020-10-18 15:57:04 +08:00
logwang 7654fe3687 Merge pull request #551 from philberty/dev
When compiling with GCC we hit compilation error of taking address of packed member.
2020-10-15 23:57:27 +08:00
Philip Herron f065aa325e When compiling with GCC we hit compilation error of taking address
of packed member.

This adds -Wno-address-of-packed-member to avoid this warning.
2020-10-15 14:58:21 +01:00
fengbojiang 3a84cd1fec User APP can use AF_INET6/PF_INET6 directly whether call ff socket or linux API, such as inet_ntoa/inet_aton. 2020-09-03 01:35:22 +08:00
fengbojiang 1b5649a396 Add configuration options `symmetric_rss` to set whether to use symmetric RSS. 2020-08-30 00:55:08 +08:00
fengbojiang(姜凤波) 56101252f6 upgrade F-STACK_VERSION to 1.21. 2020-06-19 10:54:34 +08:00
fengbojiang 46556365b1 Add defconfig that be igroned. 2020-06-18 17:29:41 +00:00
johnjiang 37a7c72f09 DPDK: upgrade to DPDK 19.11.2(LTS). 2020-06-18 16:55:50 +00:00
root a8b1b25dd8 Add ff_ipc_exit() to clean temp files in /var/ while run F-Stack tools netstat/ngctl/sysctl/top/traffic/knictl. 2020-06-18 11:02:18 +00:00
zjwsoft 6796c85ff5 Add ff_ipc_exit() to clean temp files in /var/ while run F-Stack tools arp/ifconfig/route/ipfw. 2020-06-18 10:56:20 +00:00
Junwei Zhou 4af0f1ccbb IPFW: supported IPv6. 2020-06-15 17:48:46 +08:00
johnjiang 2747a35d56 modify `knistl` to `ff_knictl` while install tools, so it can be uninstall. 2020-05-21 04:28:07 +00:00
johnjiang e74c8bd88e Merge pull request #512 from pengtianabc/feature-knictl
Feature knictl
2020-05-21 10:59:12 +08:00
johnjiang e27c5f4e3a Merge branch 'dev' into feature-knictl 2020-05-21 10:56:12 +08:00
pengtian 0ee59708e0 Merge branch 'v1.20-feature-kni' into master-kni 2020-05-15 15:04:07 +08:00
pengtian 558cc060dd #Update .gitignore 2020-05-15 15:03:18 +08:00
pengtian 0b1e7c031e #add knictl support 2020-05-14 18:30:34 +08:00
johnjiang f5e555b260 Merge pull request #498 from soroshsabz/dev
Update README.md
2020-04-07 12:04:34 +08:00
soroshsabz 3ff90cdb74 Update README.md
Remove unnecessary spaces.
2020-04-03 21:56:38 +04:30
soroshsabz 28953711af Update README.md
Improve quick start for building f-stack in clean ubuntu machine.
2020-04-03 21:49:52 +04:30
johnjiang 53638472c1 Merge pull request #475 from jinhao2/dev
modify dump codes.
2020-01-10 14:36:47 +08:00
johnjiang b739031548 Merge pull request #473 from WoolenWang/dev
add_micro_thread_auto_adjust_thread_cnt
2020-01-10 14:32:14 +08:00
rolfliu 37720803e1 Fix #43 #434 for Nginx transparent proxy 2020-01-10 14:26:02 +08:00
jinhao2 cd5b4948de update ff_dump_packets 2020-01-08 21:23:33 +08:00
jinhao2 80d23aa1da update indent size 2020-01-08 21:13:12 +08:00
jin.hao1 a2728d1e67 Update ff_config.h
use 4 spaces indent.
2020-01-07 21:10:08 +08:00
jin.hao1 53219bba43 update config.ini 2020-01-07 21:07:57 +08:00
jin.hao1 6d051c0454 update config.c
use 4 space other than tab.
2020-01-07 21:04:17 +08:00
jinhao2 49055fa472 update config.ini 2020-01-08 20:38:15 +08:00