Commit Graph

54 Commits

Author SHA1 Message Date
fengbojiang f95b80ee63 Support automatic configuration of vlan and vlan ip, routing and the simplest policy routing
1. Automatic configuration of multi vlan vip(IPv4 and IPv6).
	1.1 And support automatic multi default route for per vlan, via different fib num.
	1.2 IPv6 not support set multi route fib now, just use RT_DEFAULT_FIB, And you can set multi fib use tool 'ff_route'.
	1.3 If vlan_flag is true, all port's addrs/vips will not to set, just create the iface.
2. Automatic configuration of simple policy routing.
	2.1 Only supports the simplest policy routing settings, like:
		`ff_ipfw -P 0 add 100 setfib 0 ip from 125.94.59.0/24 to any out`
		`from 125.94.59.0/24` need set addr is '125.94.59.0', netmask is '255.255.255.0'
	2.2 IPv6 does not support automatic configuration of policy routing. If ipv6 policy routing is required, you still need to use ff_ipfw to manually configure it.
2024-10-17 15:01:51 +08:00
fengbojiang 38d9fdee68 Fix a build error with gcc-13.2.0. 2024-10-12 20:23:04 +08:00
Radu Nichita 6166910faa Add POSIX Like functions for pthread_create and pthread_join 2024-08-14 10:17:35 +02:00
fengbojiang ba2a7fe957 Add kni type argument in config.ini and FF_KNI_KNI in lib/Makefile to set exception path type.
FF_KNI_KNI disabled by default and then:
type 0 and 1 both use virtio_user.

If enabled FF_KNI_KNI(and you must set meson -Ddisable_libs=flow_classif to re-enable kni driver in DPDK first):
type:0 means use historical kni.
type:1 means use virtio_user(linux only), see https://doc.dpdk.org/guides/howto/virtio_user_as_exception_path.html#virtio-user-as-exception-path.
2023-09-19 18:28:57 +08:00
jfb8856606 fb1e8e99f8 upgrade F-STACK_VERSION to 1.24. 2023-09-13 08:40:14 +00:00
fengbojiang 761dee801d Add VERSION file in root dir directory and upgrade version to 1.23. 2023-02-15 19:21:58 +08:00
fengbojiang 0763cdeb7f enable -O2 by default. Ref #711 #721. 2022-12-30 19:59:23 +08:00
Dmitriy Alexandrov 179cc5ed39 Removed deleted sources from Makefile 2022-11-14 17:44:12 +04:00
hao 4854315d0d Added FDIR using general flow rules.
Added FDIR functionality that does not use flow in isolation mode. This is a part of the research work at RCSLab, University of Waterloo
2022-09-15 20:56:47 -04:00
ZZMarquis 6daadb0b5c to avoid compiling errors when gcc version >= 10
to avoid compiling errors when gcc version >= 10
2022-06-17 22:05:59 +08:00
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 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
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
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 21cfeb4372 Support extra tcp stacks, rack and bbr. 2021-09-23 15:16:09 +08:00
fengbojiang 4093ffd426 Update LICENCE. 2021-09-18 16:05:45 +08:00
fengbojiang 8fe2bf87f3 FreeBSD13 can simply work. 2021-09-18 14:50:06 +08:00
fengbojiang e7b7fb6cc9 FreeBSD: Upgrade to FreeBSD-releng-13.0 compiled, to be tested. 2021-08-31 19:00:09 +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
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(姜凤波) 56101252f6 upgrade F-STACK_VERSION to 1.21. 2020-06-19 10:54:34 +08:00
fengbojiang f67a26a199 Add `ip6_fastfwd.c` in `Makefile`. 2019-11-23 11:40:18 +08:00
fengbojiang(姜凤波) 7cb21a2b2b IPv6: support multi-processes, deep copy NDP packet and dispatch. 2019-07-17 17:31:47 +08:00
fengbojiang(姜凤波) adfdf56113 IPv6: FreeBSD stack and f-stack support ipv6. 2019-07-12 20:56:01 +08:00
jfb8856606 ea837b1efb add `make install` and `make uninstall` in f-tack's lib and tools, refer #396 2019-07-01 19:18:54 +08:00
logwang 5f73f9b957 Merge branch 'dev' into master 2019-05-21 22:19:57 +08:00
10077240 5bf882b459 modify according to MR.Wang 2019-04-01 14:54:36 +08:00
10077240 0da6ab43f7 modify makefile as needes 2019-03-29 10:49:35 +08:00
fengbojiang(姜凤波) e8591dc5c0 F-Stack's kni can work on DPDK 18.11 LTS now. 2019-03-14 17:17:58 +08:00
DonBearH cac3602237 Setting FF_DPDK with MACHINE_CPUARCH 2018-11-08 14:57:44 +08:00
DonBearH bf05b3b78b Update Makefile for reserving FF_DPDK for x86
The former patch, which add compiler option for arm64, removes the FF_DPDK for x86.
That's a mistake.
2018-11-08 10:03:22 +08:00
dongbo4 9bd490e8d3 Add arch arm64 compiler options 2018-11-07 08:55:09 +00:00
morishima311 7230b27cf0 fix static building path of FF_DPDK 2018-08-24 16:03:23 +09:00
root 5523938c5b add `base_virtaddr` config. 2018-08-20 16:44:33 +08:00
whl739 dc42d452ae F-Stack: disable kni module by default.
This commit adds a macro `FF_KNI` to determine whether to enable kni.
In Makefile, uncomment the `FF_KNI=1`, kni will be compiled into f-stack.
2018-06-21 17:39:17 +08:00
logwang 62a0d71654 Ipfw: fix "invalid argument" when using `divert`.
Note that this only fix the error, `divert` is still not usable, refer to #136.
If you want to use NAT, you can just use the built-in `ipfw nat`
instead.
2018-01-08 21:53:39 +08:00
whl739 127dd473af Add tool: ipfw.
ipfw -- interface for firewall, packet scheduler, NAT and so on.

It is comprised of several components: the kernel firewall filter rule processor and its integrated packet accounting facility, the logging facility, NAT, a forward facility, a bridge facility, and an ipstealth facility.
Note that the `dummynet` traffic shaper is not merged.
2017-11-14 16:44:32 +08:00
logwang 3b2bd0f641 Add tool: ngctl.
ngctl -- netgraph control utility.
The ngctl utility creates a new netgraph node of type socket which can be used to issue netgraph commands.
2017-11-01 17:38:22 +08:00
logwang a416aa0841 FreeBSD misc: add a macro to turn on NETGRAPH option and return error when call sleep 2017-10-27 18:08:44 +08:00
logwang c36e692a8e Use `KMOD_SRCS` to pass extra kernel module sourcs.
For example, if you have an extra FreeBSD kernel module, and want to
compile it into F-Stack, you can do it like this:
```
cd f-stack/lib
export "KMOD_SRCS=/your/kmod/path/a.c /your/kmod/path/b.c"
export "CONF_CFLAGS=-I/your/kmod/path"
make
```
2017-10-25 15:26:01 +08:00
logwang a1fd9364a9 FreeBSD: add module netgraph. 2017-10-25 14:38:15 +08:00
logwang 8cf1d457cb Optimize makefile 2017-09-14 15:25:07 +08:00
YuYang 34b2fad45f use CONF_CFLAGS to pass extra CLFAGS 2017-09-06 10:26:12 +08:00
Andy 08dba0109c add lvs toa option 2017-09-04 23:19:12 -04:00
logwang 1eaf0ac36a Add tool: netstat.
Including libraries: libutil,libmemstat,libxo.
2017-08-31 21:34:50 +08:00
logwang 3132126c98 Merge branch master of https://github.com/F-Stack/f-stack 2017-06-14 15:38:42 +08:00
logwang 144c6bcd95 Add tool: route.
This commit ports FreeBSD `route` to F-Stack, can be used to set the route
table.
2017-06-14 15:25:35 +08:00