Commit Graph

5 Commits

Author SHA1 Message Date
dd69724837 fff-layer3-vxmesh: join multple client nets with vxlan
Easily span a layer 2 network over a small group of, not necessarily
adjacent, routers.

This patch introduces a new `vxmesh` configuration section. It takes
care of setting up a shared client network using vxlan among all
configured routers.

As a result, clients can finally roam between the routers of the mesh.
It integrates well with the underlying layer 3 routing to make best use
of the infrastructure available. This way the network is not depending
on a contiguous layer 2 spanning tree topology and can make use of all
fallback mechanisms of the layer 3 underlay.

This example config ...
```
config gateway
	option peer_ip6 '2001:0db8::1' # required

...

config vxmesh
	option proto 'vxlan|vxlan6' # required
	option vid   '42'           # required

	# ...
	# any vxlan options can be included
	# ...

	# list of peers for headend replication
	list peer '2001:0db8::1'    # list can include the ip of the router
	list peer '2001:0db8::2'    # this way the complete config section
	list peer '2001:0db8::3'    # can be copied to all routers in the
	list peer '2001:0db8::4'    # group
	...
```

... will generate ...

```
config interface client
	...
	# append and remove the vxmesh0 entry
	# depending on whether a vxmesh is configured
	ifname '... vxmesh0'
	...

...

config interface 'vxmesh0'
	option proto 'vxlan6'
	option vid '42'

config vxlan_peer
	option vxlan 'vxmesh0'
	option dst '2001:0db8::2'

config vxlan_peer
	option vxlan 'vxmesh0'
	option dst '2001:0db8::3'

config vxlan_peer
	option vxlan 'vxmesh0'
	option dst '2001:0db8::4'
```

It will also take care and configure the
`dhcp.@dnsmasq[0].authoritative` setting depending on whether a vxmesh
is enabled or not.

Signed-off-by: Johannes Kimmel <fff@bareminimum.eu>
2021-02-17 07:13:57 +01:00
e3954fddf5 packages/fff: drop redundant PKG_BUILD_DIR
PKG_BUILD_DIR has the following default values set in include/package.mk,
in case no BUILD_VARIANT is set:

With PKG_VERSION set: $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
Without PKG_VERSION:  $(BUILD_DIR)/$(PKG_NAME)

Consequently, all PKG_BUILD_DIR definitions in our packages are
redundant. Remove them.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
2021-01-27 20:22:02 +01:00
be4c1fe689 fff-layer3: Add cake scheduler kernel module
The cake scheduler is a popular fair queuing scheduler, which is also
capable of shaping traffic. Due to its sensible defaults it is very
easy to set up.

When tunnel traffic exceeds the capability of the transport connection,
firmware users might want to shape traffic, so meaningful queueing can be done
before tunnel packets are dropped. As this is typically combined with a fair
scheduler, cake provides a simple yet very powerful solution for both problems.

Therefore the cake kernel module is now included in the layer3 variant.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Reviewed-by: Christian Dresel <freifunk@dresel.systems>
2021-01-13 22:05:12 +01:00
b69469a0b9 packages/fff: remove unneeded Build/Prepare and Build/Configure
Build/Prepare and Build/Configure are not required for packages
which only contain local files and do not need any compilation.

Remove them.

Note that Build/Compile needs to be present and empty to overwrite
the defaults, though.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
2020-12-22 13:47:45 +01:00
7e552761f6 packages/fff: rename fff-gateway to fff-layer3
The term "gateway" is ambiguous, and we are using "layer 3" for this
flavor now. Reflect that in the package name as well.

This is cosmetic otherwise.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Christian Dresel <freifunk@dresel.systems>
2020-12-17 15:38:28 +01:00