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>
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>
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>
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>
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>