Jianfeng Tan
84456118c7
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:04:46 +08:00
Hawker
76f39db167
update comments
2021-03-06 19:04:46 +08:00
Hawker
c2cb022c64
update comments
2021-03-06 19:04:46 +08:00
Hawker
d957b83157
update comments
2021-03-06 19:04:45 +08:00
Hawker
900256fd7d
update create_tcp_flow parameter
2021-03-06 19:04:45 +08:00
Hawker
fc73e3a9a4
update init_flow
2021-03-06 19:04:45 +08:00
Hawker
6c89f403ee
Replace deprecated filter api with generic flowapi
2021-03-06 19:04:45 +08:00
Hawker
2474e16370
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
32ff8fda83
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
fengbojiang
f41205e9f3
Add configuration options `symmetric_rss` to set whether to use symmetric RSS.
2020-08-30 00:55:08 +08:00
johnjiang
4418919fe2
DPDK: upgrade to DPDK 19.11.2(LTS).
2020-06-18 16:55:50 +00:00
johnjiang
632c79327e
Merge branch 'dev' into feature-knictl
2020-05-21 10:56:12 +08:00
pengtian
47507c1510
#add knictl support
2020-05-14 18:30:34 +08:00
jinhao2
4dfcdbcc8d
update indent size
2020-01-08 21:13:12 +08:00
jinhao2
819aafb684
dump packets by core, instead of by ports;without fopen/fclose while dumping
2020-01-08 12:09:40 +08:00
Jayath Sathyanarayana
3a3642c7f7
Merge patch of Configuration param to skip "TX checksum offload", refer #448 .
2019-11-04 13:10:27 +08:00
fengbojiang(姜凤波)
c9b3c75a23
Fix mac set bug.
2019-09-04 21:37:56 +08:00
fengbojiang(姜凤波)
c0f666848d
Bonding: supported. but it can't work in multi-processes, to be fix.
2019-09-04 21:17:10 +08:00
fengbojiang(姜凤波)
aa18b738d4
packet_dispatcher support vlan.
2019-08-06 22:19:12 +08:00
fengbojiang(姜凤波)
67c27ffe02
Merge branch 'master' into dev
...
Fix bug of kni while set `vlan_strip=0`.
2019-08-06 22:11:54 +08:00
fengbojiang(姜凤波)
3bb4314f74
Fix bug of kni while set `vlan_strip=0`.
2019-08-06 22:05:27 +08:00
fengbojiang(姜凤波)
a08b952138
Modified vlan code.
2019-07-29 15:29:24 +08:00
HongBo Long
f66f945850
set freebsd mbuf vlan information when the vlan_strip is enable && get ether_type error when the vlan_strip is disabled
2019-07-29 15:27:40 +08:00
fengbojiang(姜凤波)
faeec574ca
Merge branch 'master' into dev
...
vlan bug fix
2019-07-29 15:08:46 +08:00
fengbojiang(姜凤波)
00c65d220e
Modified vlan code.
2019-07-29 14:47:11 +08:00
johnjiang
2479a83f3c
Merge pull request #414 from jinhao2/dev
...
support more than 32 processes; support 52bytes rsskey; compile failed.
2019-07-29 13:58:21 +08:00
jin.hao1
b467d9c428
Update ff_dpdk_if.c
...
update codes.
2019-07-29 08:43:45 +08:00
jin.hao1
fa32b23ec3
Update ff_dpdk_if.c
...
code aligned.
2019-07-29 08:42:28 +08:00
fengbojiang
0f5432bb05
Tools: update top.
2019-07-25 22:33:42 +08:00
fengbojiang(姜凤波)
6194fcd20a
Tools: All tools can work in parallel now.
2019-07-25 17:19:28 +08:00
10077240
34e766d2b6
support more than 32 processes; support 52bytes rsskey; compile failed.
2019-07-25 11:27:30 +08:00
fengbojiang(姜凤波)
10b909a1b3
IPv6: support multi-processes, deep copy NDP packet and dispatch.
2019-07-17 17:31:47 +08:00
fengbojiang(姜凤波)
6bbb2125dc
Merge branch 'dev' of https://github.com/F-Stack/f-stack into dev
2019-07-12 20:58:31 +08:00
fengbojiang(姜凤波)
d7140ab746
IPv6: FreeBSD stack and f-stack support ipv6.
2019-07-12 20:56:01 +08:00
HongBo Long
49056e3ae7
set freebsd mbuf vlan information when the vlan_strip is enable && get ether_type error when the vlan_strip is disabled
2019-07-09 20:02:42 +08:00
root
e4b4439165
fix the issue that set the incorrect crc_strip flag.
2019-07-05 14:45:00 +08:00
fengbojiang(姜凤波)
4de33dfa9f
remove unused code.
2019-06-27 18:21:45 +08:00
fengbojiang(姜凤波)
59bb71f60e
Add pkt_tx_delay parameter in config.ini.
...
It should be default while handling large concurrent requests, otherwise
it will reduce the throughput.
But if there are only a little, you can set it to less than 100, even to
0, to reduce the delay of the connection.
2019-06-27 17:44:19 +08:00
fengbojiang(姜凤波)
16d80a6ddc
modify RTE_MAX to RTE_ALIGN_CEIL while init mempool.
2019-06-27 12:12:59 +08:00
jfb8856606
d30ea9060e
Reupgrade DPDK to 18.11.
2019-06-25 19:12:58 +08:00
fengbojiang(姜凤波)
173e66311e
Merge branch 'master' into dev
2019-06-25 17:15:06 +08:00
logwang
5f73f9b957
Merge branch 'dev' into master
2019-05-21 22:19:57 +08:00
10077240
04cef02d60
use 4 spaces instead tab
2019-04-01 15:42:01 +08:00
10077240
5bf882b459
modify according to MR.Wang
2019-04-01 14:54:36 +08:00
10077240
ef5ab85936
not use mcopy when transmit from bsd to dpdk
2019-03-29 10:42:02 +08:00
johnjiang
fba559f45b
Merge pull request #355 from jinhao2/master
...
ff_traffic.tx info should save the sent packets
2019-03-18 11:07:06 +08:00
jin.hao1
49d7ad40cc
recommit
2019-03-15 18:07:15 +08:00
jin.hao1
268488030d
ff_traffic.tx info should save the sent packets
...
send_burst() send several pkts which maybe composed by several mbufs, use rte_pktmbuf_pkt_len() to get actual length.
2019-03-15 16:18:17 +08:00
fengbojiang(姜凤波)
e8591dc5c0
F-Stack's kni can work on DPDK 18.11 LTS now.
2019-03-14 17:17:58 +08:00
fengbojiang(姜凤波)
ee6c3aa356
modify packet_dispatcher to support response package direct.
2019-03-08 15:12:57 +08:00