<html><head></head><body>Hi Lemmi,<br><br>Ich hätte da evtl nen Standort, der sich für nen Test eignet, das Erlanger Stadtmuseum.<br><br>Derzeit 5x v2 nodes, die auf einen Umbau auf Cisco APs warten.<br>Ethernetverkabelung weitestgehend vorhanden, einmal w2mesh ist derzeit noch nötig. <br>Kann das dein System schon? <br><br>Es sollten fast alles 1043er sein, ein oder zwei 841er könnte ich noch tauschen, wenn nötig. <br>Uplink ist vdsl 50. <br><br>Besucher sind vorhanden, nicht zu viele, aber genug für nen Test. <br>Auf Zuruf kann man den ITler vor Ort sicher auch bitten, bissle Lasttests zu machen und es ist bei mir ums Eck. <br><br>Wenn im September ein fertiges Image da ist, könnten wir den Standort gerne mal zusammen mit dem System testen. <br><br>Bei Interesse bescheid geben,<br>Sebastian <br><br><div class="gmail_quote">Am 1. August 2020 13:31:52 MESZ schrieb Johannes Kimmel <fff@bareminimum.eu>:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">Hi,<br><br>also bei dem ganzen Umbau fehlt noch etwas, aber es ist genug, dass wir <br>die ersten tests mit vxlan fuer fuer die Node Firmware fahren koennen. <br>Bevor ich Upstream zuballer mit dem Zeug haette ich das alles gerne <br>einmal im kleineren Rahmen ausprobiert und eventuell erkennt jetzt schon <br>jemand Fehler, die schon gar nicht nach Upstream muessen.<br><br>Ist halt etwas schlecht von der Übersichtlichkeit, weil die patches fuer <br>den netifd quasi 3 Tief sind.<br><br>Also patches fuer netifd sind im netifd repo entstanden, dann als <br>Patchdateien im openwrt repo in den netifd/patches Ordner gelegt und <br>diese Aenderung ist der Patch hier :)<br><br>Falls es jemand moechte, kann ich die netifd patches auch mal nackig <br>hier her legen, oder vielleicht fork ich das repo mal in unserem gitea <br>und leg dort nen branch an.<br><br>Auf der TODO liste sind noch:<br><br>   - Den automatismus entfernen, der die local ip adresse automatisch aus<br>     dem tunlink ableitet. Eventuell nur dann, wenn<br>         option ip6addr 'auto'<br>         option tunlink 'wan6'<br>     gesetzt ist. Das brauchen wir, damit sich bei aenderten prefixes bei<br>     clients automatisch eine passende src adresse benutzt wird.<br>   - netifd/libnl3 genauer untersuchen inwiefern auf endianess aufgepasst<br>     werden muss. Momentan ist das nen durcheinander und vermutlich nur<br>     deswegen nicht aufgefallen, weil OpenWRT hauptsaechlich mit<br>     bigendian hardware betrieben wird.<br>   - Die GBP option funktioniert nicht (interface kommt nicht hoch, wenn<br>     sie verwendet wird)<br>   - Die letzten Paar anderen Optionen noch reinbauen, vorallem ageing.<br><br>Bei den Sachen koennte ich noch etwas input gebrauchen. Im ersten Punkt <br>Designtechnisch und vielleicht weiß bei Punkt 2 jemand die passende <br>antwort oder kann auf littleendian probieren.<br><br>Naja, genug geschwafelt. Bin mal gespannt, ob vxlan der Node Firmware <br>helfen kann, also brav spielen und testen :)<br><br>Gruesse,<br><br>Johannes<br><br><br>On 01.08.20 12:16, mail@adrianschmutzler.de wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #729fcf; padding-left: 1ex;">Hallo lemmi,<br><br>ich habe gesehen, dass da RFC dran steht; wenn/falls es eine Diskussion hier gegeben hat, sollte dies aber meiner Meinung nach erstmal durch Upstream durch (zumindest so, dass es mal in netifd drin ist).<br><br>Zur Diskussion selbst kann ich leider nicht viel beitragen.<br><br>Beste Grüße<br><br>Adrian<br><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 1ex 0.8ex; border-left: 1px solid #ad7fa8; padding-left: 1ex;"> -----Original Message-----<br> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf<br> Of Johannes Kimmel<br> Sent: Samstag, 1. August 2020 05:39<br> To: franken-dev@freifunk.net<br> Subject: [RFC PATCH] vxlan: netifd and vxlan package patches<br><br> netifd:<br>    - add srcportmin option<br>    - add srcportmax option (port exclusive)<br>    - add most missing boolean options<br><br> vxlan:<br>    - wire up the new vxlan options support<br>    - srcport<br>          option srcport "1337 31337" # for range, max is exclusive<br>          option srcport "1337" # for single srcport<br>      srcport string is split before sending over to netifd to make<br>      processing more robust on the netifd side.<br>    - learning<br>    - rsc<br>    - proxy<br>    - l2miss<br>    - l3miss<br>    - gbp<br><br> see ip-link(3)<br><br> Signed-off-by: Johannes Kimmel <fff@bareminimum.eu><hr>   .../openwrt/0015-netifd-vxlan-patches.patch   | 281 ++++++++++++++++++<br>   .../0016-vxlan-wire-up-more-options.patch     |  69 +++++<br>   2 files changed, 350 insertions(+)<br>   create mode 100644 build_patches/openwrt/0015-netifd-vxlan-<br> patches.patch<br>   create mode 100644 build_patches/openwrt/0016-vxlan-wire-up-more-<br> options.patch<br><br> diff --git a/build_patches/openwrt/0015-netifd-vxlan-patches.patch<br> b/build_patches/openwrt/0015-netifd-vxlan-patches.patch<br> new file mode 100644<br> index 0000000..9861a40<br> --- /dev/null<br> +++ b/build_patches/openwrt/0015-netifd-vxlan-patches.patch<br> @@ -0,0 +1,281 @@<br> +From a86c039c41e8dab1015766c677208181f5afbf4f Mon Sep 17 00:00:00<br> 2001<br> +From: Johannes Kimmel <fff@bareminimum.eu><br> +Date: Sat, 1 Aug 2020 04:23:41 +0200<br> +Subject: [PATCH 15/16] netifd: vxlan patches<br> +<br> +8fe4321 netifd: vxlan: add most missing boolean options<br> +9b258d8 netifd: vxlan: refactor mapping of boolean attrs<br> +84e8570 netifd: vxlan: handle srcport range<br> +<br> +Signed-off-by: Johannes Kimmel <fff@bareminimum.eu><br> +---<br> + ...01-netifd-vxlan-handle-srcport-range.patch | 98<br> +++++++++++++++++++<br> +...an-refactor-mapping-of-boolean-attrs.patch | 59 +++++++++++<br> +...lan-add-most-missing-boolean-options.patch | 84 ++++++++++++++++<br> + 3 files changed, 241 insertions(+)<br> + create mode 100644<br> +package/network/config/netifd/patches/0001-netifd-vxlan-handle-srcport-<br> +range.patch  create mode 100644<br> +package/network/config/netifd/patches/0002-netifd-vxlan-refactor-<br> mappin<br> +g-of-boolean-attrs.patch  create mode 100644<br> +package/network/config/netifd/patches/0003-netifd-vxlan-add-most-<br> missin<br> +g-boolean-options.patch<br> +<br> +diff --git<br> +a/package/network/config/netifd/patches/0001-netifd-vxlan-handle-<br> srcpor<br> +t-range.patch<br> +b/package/network/config/netifd/patches/0001-netifd-vxlan-handle-<br> srcpor<br> +t-range.patch<br> +new file mode 100644<br> +index 0000000000..46cf1ef893<br> +--- /dev/null<br> ++++ b/package/network/config/netifd/patches/0001-netifd-vxlan-handle-<br> sr<br> ++++ cport-range.patch<br> +@@ -0,0 +1,98 @@<br> ++From 84e857013a2880362d16aa7890cd62981c152ddb Mon Sep 17 00:00:00<br> 2001<br> ++From: Johannes Kimmel <fff@bareminimum.eu><br> ++Date: Sat, 1 Aug 2020 03:38:27 +0200<br> ++Subject: [PATCH 1/3] netifd: vxlan: handle srcport range<br> ++<br> ++This adds adds the ability to set the source port range for vxlan<br> ++interfaces.<br> ++<br> ++By default vxlans will use a random port within the ephermal range as<br> ++source ports for packets. This is done to aid scaleability within a<br> ++datacenter.<br> ++<br> ++But with these defaults it's impossible to punch through NATs or<br> ++traverese most stateful firewalls easily. One solution is to fix the<br> ++srcport to the same as dstport.<br> ++<br> ++If only srcportmin is specified, then srcportmax is set in a way that<br> ++outgoing packets will only use srcportmin.<br> ++<br> ++If a range is to be specified, srcportmin and srcportmax have to be<br> ++specified. srcportmax is exclusive.<br> ++<br> ++If only srcportmax is specified, the value is ignored and defaults are<br> ++used.<br> ++<br> ++Signed-off-by: Johannes Kimmel <fff@bareminimum.eu><br> ++---<br> ++ system-linux.c | 26 ++++++++++++++++++++++++++<br> ++ system.c       |  2 ++<br> ++ system.h       |  2 ++<br> ++ 3 files changed, 30 insertions(+)<br> ++<br> ++diff --git a/system-linux.c b/system-linux.c index c5583e0..5ff8749<br> ++100644<br> ++--- a/system-linux.c<br> +++++ b/system-linux.c<br> ++@@ -3184,6 +3184,32 @@ static int system_add_vxlan(const char *name,<br> const unsigned int link, struct bl<br> ++      }<br> ++  nla_put_u16(msg, IFLA_VXLAN_PORT, htons(port));<br> ++<br> +++      if ((cur = tb_data[VXLAN_DATA_ATTR_SRCPORTMIN])) {<br> +++                struct ifla_vxlan_port_range srcports = {0,0};<br> +++<br> +++              uint32_t low = blobmsg_get_u32(cur);<br> +++              if (low < 1 || low > 65535 - 1) {<br> +++                   ret = -EINVAL;<br> +++                    goto failure;<br> +++             }<br> +++<br> +++           srcports.low = htons((uint16_t) low);<br> +++             srcports.high = htons((uint16_t) (low+1));<br> +++<br> +++          if ((cur = tb_data[VXLAN_DATA_ATTR_SRCPORTMAX])) {<br> +++                        uint32_t high = blobmsg_get_u32(cur);<br> +++                     if (high < 1 || high > 65535) {<br> +++                             ret = -EINVAL;<br> +++                            goto failure;<br> +++                     }<br> +++                 if (high > low) {<br> +++                              srcports.high = htons((uint16_t) high);<br> +++                   }<br> +++         }<br> +++<br> +++           nla_put(msg, IFLA_VXLAN_PORT_RANGE, sizeof(srcports),<br> &srcports);<br> +++   }<br> +++<br> ++    if ((cur = tb_data[VXLAN_DATA_ATTR_RXCSUM])) {<br> ++             bool rxcsum = blobmsg_get_bool(cur);<br> ++               nla_put_u8(msg, IFLA_VXLAN_UDP_ZERO_CSUM6_RX,<br> !rxcsum); diff --git<br> ++a/system.c b/system.c index bbdfef7..4133e55 100644<br> ++--- a/system.c<br> +++++ b/system.c<br> ++@@ -38,6 +38,8 @@ static const struct blobmsg_policy<br> vxlan_data_attrs[__VXLAN_DATA_ATTR_MAX] = {<br> ++  [VXLAN_DATA_ATTR_MACADDR] = { .name = "macaddr", .type =<br> BLOBMSG_TYPE_STRING },<br> ++        [VXLAN_DATA_ATTR_RXCSUM] = { .name = "rxcsum", .type =<br> BLOBMSG_TYPE_BOOL },<br> ++    [VXLAN_DATA_ATTR_TXCSUM] = { .name = "txcsum", .type =<br> ++BLOBMSG_TYPE_BOOL },<br> +++ [VXLAN_DATA_ATTR_SRCPORTMIN] = { .name = "srcportmin", .type<br> = BLOBMSG_TYPE_INT32 },<br> +++  [VXLAN_DATA_ATTR_SRCPORTMAX] = { .name = "srcportmax", .type<br> =<br> +++BLOBMSG_TYPE_INT32 },<br> ++ };<br> ++<br> ++ const struct uci_blob_param_list vxlan_data_attr_list = { diff --git<br> ++a/system.h b/system.h index 015987f..bf9e1d7 100644<br> ++--- a/system.h<br> +++++ b/system.h<br> ++@@ -44,6 +44,8 @@ enum vxlan_data {<br> ++         VXLAN_DATA_ATTR_MACADDR,<br> ++   VXLAN_DATA_ATTR_RXCSUM,<br> ++    VXLAN_DATA_ATTR_TXCSUM,<br> +++   VXLAN_DATA_ATTR_SRCPORTMIN,<br> +++       VXLAN_DATA_ATTR_SRCPORTMAX,<br> ++        __VXLAN_DATA_ATTR_MAX<br> ++ };<br> ++<br> ++--<br> ++2.28.0<br> ++<br> +diff --git<br> +a/package/network/config/netifd/patches/0002-netifd-vxlan-refactor-<br> mapp<br> +ing-of-boolean-attrs.patch<br> +b/package/network/config/netifd/patches/0002-netifd-vxlan-refactor-<br> mapp<br> +ing-of-boolean-attrs.patch<br> +new file mode 100644<br> +index 0000000000..a868ad64f8<br> +--- /dev/null<br> ++++ b/package/network/config/netifd/patches/0002-netifd-vxlan-refactor-<br> ++++ mapping-of-boolean-attrs.patch<br> +@@ -0,0 +1,59 @@<br> ++From 9b258d8c7f5140fa3e19d3e5c19b9cef84ff80f7 Mon Sep 17 00:00:00<br> 2001<br> ++From: Johannes Kimmel <fff@bareminimum.eu><br> ++Date: Sat, 1 Aug 2020 03:59:55 +0200<br> ++Subject: [PATCH 2/3] netifd: vxlan: refactor mapping of boolean attrs<br> ++<br> ++Add a small function to handle boolean options and make use of it to<br> handle:<br> ++  - rxcsum<br> ++  - txcsum<br> ++<br> ++Signed-off-by: Johannes Kimmel <fff@bareminimum.eu><br> ++---<br> ++ system-linux.c | 24 ++++++++++++++----------<br> ++ 1 file changed, 14 insertions(+), 10 deletions(-)<br> ++<br> ++diff --git a/system-linux.c b/system-linux.c index 5ff8749..82b65e3<br> ++100644<br> ++--- a/system-linux.c<br> +++++ b/system-linux.c<br> ++@@ -3073,6 +3073,17 @@ failure:<br> ++ #endif<br> ++<br> ++ #ifdef IFLA_VXLAN_MAX<br> +++static void system_vxlan_map_bool_attr(struct nl_msg *msg, struct<br> blob_attr **tb_data, int attrtype, int vxlandatatype, bool invert) {<br> +++      struct blob_attr *cur;<br> +++    if ((cur = tb_data[vxlandatatype])) {<br> +++             bool val = blobmsg_get_bool(cur);<br> +++         if (invert) {<br> +++                     val = !val;<br> +++               }<br> +++         nla_put_u8(msg, attrtype, val);<br> +++   }<br> +++}<br> +++<br> ++ static int system_add_vxlan(const char *name, const unsigned int<br> ++link, struct blob_attr **tb, bool v6)  {<br> ++  struct blob_attr *tb_data[__VXLAN_DATA_ATTR_MAX]; @@ -<br> 3210,16<br> +++3221,9 @@ static int system_add_vxlan(const char *name, const<br> unsigned int link, struct bl<br> ++                 nla_put(msg, IFLA_VXLAN_PORT_RANGE, sizeof(srcports),<br> &srcports);<br> ++    }<br> ++<br> ++-    if ((cur = tb_data[VXLAN_DATA_ATTR_RXCSUM])) {<br> ++-            bool rxcsum = blobmsg_get_bool(cur);<br> ++-              nla_put_u8(msg, IFLA_VXLAN_UDP_ZERO_CSUM6_RX,<br> !rxcsum);<br> ++- }<br> ++-<br> ++-   if ((cur = tb_data[VXLAN_DATA_ATTR_TXCSUM])) {<br> ++-            bool txcsum = blobmsg_get_bool(cur);<br> ++-              nla_put_u8(msg, IFLA_VXLAN_UDP_CSUM, txcsum);<br> ++-             nla_put_u8(msg, IFLA_VXLAN_UDP_ZERO_CSUM6_TX,<br> !txcsum);<br> ++- }<br> +++ system_vxlan_map_bool_attr(msg, tb_data,<br> IFLA_VXLAN_UDP_ZERO_CSUM6_RX, VXLAN_DATA_ATTR_RXCSUM, true);<br> +++   system_vxlan_map_bool_attr(msg, tb_data,<br> IFLA_VXLAN_UDP_CSUM, VXLAN_DATA_ATTR_TXCSUM, false);<br> +++   system_vxlan_map_bool_attr(msg, tb_data,<br> +++IFLA_VXLAN_UDP_ZERO_CSUM6_TX, VXLAN_DATA_ATTR_TXCSUM,<br> true);<br> ++<br> ++  if ((cur = tb[TUNNEL_ATTR_TOS])) {<br> ++                 char *str = blobmsg_get_string(cur);<br> ++--<br> ++2.28.0<br> ++<br> +diff --git<br> +a/package/network/config/netifd/patches/0003-netifd-vxlan-add-most-<br> miss<br> +ing-boolean-options.patch<br> +b/package/network/config/netifd/patches/0003-netifd-vxlan-add-most-<br> miss<br> +ing-boolean-options.patch<br> +new file mode 100644<br> +index 0000000000..228c0cd37f<br> +--- /dev/null<br> ++++ b/package/network/config/netifd/patches/0003-netifd-vxlan-add-<br> most-<br> ++++ missing-boolean-options.patch<br> +@@ -0,0 +1,84 @@<br> ++From 8fe4321a8d7ec7b28b7011f67c88a07584160a47 Mon Sep 17 00:00:00<br> 2001<br> ++From: Johannes Kimmel <fff@bareminimum.eu><br> ++Date: Sat, 1 Aug 2020 04:05:31 +0200<br> ++Subject: [PATCH 3/3] netifd: vxlan: add most missing boolean options<br> ++<br> ++adds the folloing missing options:<br> ++  - learning<br> ++  - rsc<br> ++  - proxy<br> ++  - l2miss<br> ++  - l3miss<br> ++  - gbp<br> ++<br> ++See ip-link(3) for their meaning.<br> ++<br> ++still missing:<br> ++  - external<br> ++  - gpe<br> ++<br> ++I'm not sure how to handle them at the moment. It's unclear to me what<br> ++IFLA_VXLAN_* value corresponds to the 'external' option and according<br> ++to the manpage, gpe depends on it.<br> ++<br> ++Signed-off-by: Johannes Kimmel <fff@bareminimum.eu><br> ++---<br> ++ system-linux.c | 6 ++++++<br> ++ system.c       | 6 ++++++<br> ++ system.h       | 6 ++++++<br> ++ 3 files changed, 18 insertions(+)<br> ++<br> ++diff --git a/system-linux.c b/system-linux.c index 82b65e3..d129fef<br> ++100644<br> ++--- a/system-linux.c<br> +++++ b/system-linux.c<br> ++@@ -3224,6 +3224,12 @@ static int system_add_vxlan(const char *name,<br> const unsigned int link, struct bl<br> ++       system_vxlan_map_bool_attr(msg, tb_data,<br> IFLA_VXLAN_UDP_ZERO_CSUM6_RX, VXLAN_DATA_ATTR_RXCSUM, true);<br> ++    system_vxlan_map_bool_attr(msg, tb_data,<br> IFLA_VXLAN_UDP_CSUM, VXLAN_DATA_ATTR_TXCSUM, false);<br> ++    system_vxlan_map_bool_attr(msg, tb_data,<br> ++IFLA_VXLAN_UDP_ZERO_CSUM6_TX, VXLAN_DATA_ATTR_TXCSUM,<br> true);<br> +++       system_vxlan_map_bool_attr(msg, tb_data,<br> IFLA_VXLAN_LEARNING, VXLAN_DATA_ATTR_LEARNING, false);<br> +++ system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_RSC ,<br> VXLAN_DATA_ATTR_RSC, false);<br> +++  system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_PROXY ,<br> VXLAN_DATA_ATTR_PROXY, false);<br> +++      system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_L2MISS ,<br> VXLAN_DATA_ATTR_L2MISS, false);<br> +++    system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_L3MISS ,<br> VXLAN_DATA_ATTR_L3MISS, false);<br> +++    system_vxlan_map_bool_attr(msg, tb_data, IFLA_VXLAN_GBP ,<br> +++VXLAN_DATA_ATTR_GBP, false);<br> ++<br> ++   if ((cur = tb[TUNNEL_ATTR_TOS])) {<br> ++                 char *str = blobmsg_get_string(cur); diff --git a/system.c<br> ++b/system.c index 4133e55..95721e1 100644<br> ++--- a/system.c<br> +++++ b/system.c<br> ++@@ -40,6 +40,12 @@ static const struct blobmsg_policy<br> vxlan_data_attrs[__VXLAN_DATA_ATTR_MAX] = {<br> ++      [VXLAN_DATA_ATTR_TXCSUM] = { .name = "txcsum", .type =<br> BLOBMSG_TYPE_BOOL },<br> ++    [VXLAN_DATA_ATTR_SRCPORTMIN] = { .name = "srcportmin", .type<br> = BLOBMSG_TYPE_INT32 },<br> ++   [VXLAN_DATA_ATTR_SRCPORTMAX] = { .name = "srcportmax", .type<br> =<br> ++BLOBMSG_TYPE_INT32 },<br> +++      [VXLAN_DATA_ATTR_LEARNING] = { .name = "learning", .type =<br> BLOBMSG_TYPE_BOOL },<br> +++       [VXLAN_DATA_ATTR_RSC] = { .name = "rsc", .type =<br> BLOBMSG_TYPE_BOOL },<br> +++ [VXLAN_DATA_ATTR_PROXY] = { .name = "proxy", .type =<br> BLOBMSG_TYPE_BOOL },<br> +++     [VXLAN_DATA_ATTR_L2MISS] = { .name = "l2miss", .type =<br> BLOBMSG_TYPE_BOOL },<br> +++   [VXLAN_DATA_ATTR_L3MISS] = { .name = "l3miss", .type =<br> BLOBMSG_TYPE_BOOL },<br> +++   [VXLAN_DATA_ATTR_GBP] = { .name = "gbp", .type =<br> BLOBMSG_TYPE_BOOL<br> +++},<br> ++ };<br> ++<br> ++ const struct uci_blob_param_list vxlan_data_attr_list = { diff --git<br> ++a/system.h b/system.h index bf9e1d7..290c2e5 100644<br> ++--- a/system.h<br> +++++ b/system.h<br> ++@@ -46,6 +46,12 @@ enum vxlan_data {<br> ++       VXLAN_DATA_ATTR_TXCSUM,<br> ++    VXLAN_DATA_ATTR_SRCPORTMIN,<br> ++        VXLAN_DATA_ATTR_SRCPORTMAX,<br> +++       VXLAN_DATA_ATTR_LEARNING,<br> +++ VXLAN_DATA_ATTR_RSC,<br> +++      VXLAN_DATA_ATTR_PROXY,<br> +++    VXLAN_DATA_ATTR_L2MISS,<br> +++   VXLAN_DATA_ATTR_L3MISS,<br> +++   VXLAN_DATA_ATTR_GBP,<br> ++       __VXLAN_DATA_ATTR_MAX<br> ++ };<br> ++<br> ++--<br> ++2.28.0<br> ++<br> +--<br> +2.28.0<br> +<br> diff --git a/build_patches/openwrt/0016-vxlan-wire-up-more-options.patch<br> b/build_patches/openwrt/0016-vxlan-wire-up-more-options.patch<br> new file mode 100644<br> index 0000000..97d3422<br> --- /dev/null<br> +++ b/build_patches/openwrt/0016-vxlan-wire-up-more-options.patch<br> @@ -0,0 +1,69 @@<br> +From a013910a253fdbaf3eccd546eb93dc10e2291689 Mon Sep 17 00:00:00<br> 2001<br> +From: Johannes Kimmel <fff@bareminimum.eu><br> +Date: Sat, 1 Aug 2020 04:33:11 +0200<br> +Subject: [PATCH 16/16] vxlan: wire-up more options<br> +<br> +Signed-off-by: Johannes Kimmel <fff@bareminimum.eu><br> +---<br> + package/network/config/vxlan/files/vxlan.sh | 22<br> +++++++++++++++++++--<br> + 1 file changed, 20 insertions(+), 2 deletions(-)<br> +<br> +diff --git a/package/network/config/vxlan/files/vxlan.sh<br> +b/package/network/config/vxlan/files/vxlan.sh<br> +index d063c47d47..b1d106c47d 100755<br> +--- a/package/network/config/vxlan/files/vxlan.sh<br> ++++ b/package/network/config/vxlan/files/vxlan.sh<br> +@@ -59,8 +59,11 @@ vxlan_generic_setup() {<br> +<br> +         local link="$cfg"<br> +<br> +-    local port vid ttl tos mtu macaddr zone rxcsum txcsum<br> +-      json_get_vars port vid ttl tos mtu macaddr zone rxcsum txcsum<br> ++      local port srcport srcportmin srcportmax vid ttl tos mtu macaddr zone<br> rxcsum txcsum learning rsc proxy l2miss l3miss gbp<br> ++ json_get_vars port srcport vid ttl tos mtu macaddr zone rxcsum<br> txcsum<br> ++learning rsc proxy l2miss l3miss gbp<br> ++<br> ++      srcportmin=$(echo $srcport | cut -d' ' -f1)<br> ++        srcportmax=$(echo $srcport | cut -d' ' -f2)<br> +<br> +     proto_init_update "$link" 1<br> +<br> +@@ -77,10 +80,18 @@ vxlan_generic_setup() {<br> +<br> +        json_add_object 'data'<br> +      [ -n "$port" ] && json_add_int port "$port"<br> ++    [ -n "$srcportmin" ] && json_add_int srcportmin "$srcportmin"<br> ++  [ -n "$srcportmax" ] && json_add_int srcportmax "$srcportmax"<br> +   [ -n "$vid" ] && json_add_int id "$vid"<br> +         [ -n "$macaddr" ] && json_add_string macaddr "$macaddr"<br> +         [ -n "$rxcsum" ] && json_add_boolean rxcsum "$rxcsum"<br> +   [ -n "$txcsum" ] && json_add_boolean txcsum "$txcsum"<br> ++  [ -n "$learning" ] && json_add_boolean learning "$learning"<br> ++    [ -n "$rsc" ] && json_add_boolean rsc "$rsc"<br> ++   [ -n "$proxy" ] && json_add_boolean proxy "$proxy"<br> ++     [ -n "$l2miss" ] && json_add_boolean l2miss "$l2miss"<br> ++  [ -n "$l3miss" ] && json_add_boolean l3miss "$l3miss"<br> ++  [ -n "$gbp" ] && json_add_boolean gbp "$gbp"<br> +    json_close_object<br> +<br> +       proto_close_tunnel<br> +@@ -160,11 +171,18 @@ vxlan_generic_init_config() {<br> +<br> +       proto_config_add_int "vid"<br> +        proto_config_add_int "port"<br> ++      proto_config_add_string "srcport"<br> +         proto_config_add_int "ttl"<br> +        proto_config_add_int "tos"<br> +        proto_config_add_int "mtu"<br> +        proto_config_add_boolean "rxcsum"<br> +         proto_config_add_boolean "txcsum"<br> ++        proto_config_add_boolean "learning"<br> ++      proto_config_add_boolean "rsc"<br> ++   proto_config_add_boolean "proxy"<br> ++ proto_config_add_boolean "l2miss"<br> ++        proto_config_add_boolean "l3miss"<br> ++        proto_config_add_boolean "gbp"<br> +    proto_config_add_string "macaddr"<br> + }<br> +<br> +--<br> +2.28.0<br> +<br> --<br> 2.28.0<br></blockquote></blockquote></pre></blockquote></div></body></html>