aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2021-07-02 16:23:06 +0200
committerAlexander Couzens <lynxis@fe80.eu>2021-07-02 17:38:02 +0200
commita6096ad36731ee1ca0eb8f509bd08fab5281ef58 (patch)
tree6d695f6582b872b57720eca5fa476a6d534a0a1b
parentdb7b2ab36bd6fb8ae766abd6e1bdf91d2e1a13c7 (diff)
gprs_ns2: fix check of MTU changes for frame relay
The frame relay needs 2 byte for data packets. Related: OS#5192 Change-Id: I02d4e81896a473aeb79ea2f2983e12324244048f
-rw-r--r--src/gb/gprs_ns2_fr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gb/gprs_ns2_fr.c b/src/gb/gprs_ns2_fr.c
index 3113b002..35e0dd9e 100644
--- a/src/gb/gprs_ns2_fr.c
+++ b/src/gb/gprs_ns2_fr.c
@@ -601,14 +601,18 @@ static void mtu_change(struct gprs_ns2_vc_bind *bind, uint32_t mtu)
struct priv_bind *bpriv = bind->priv;
struct gprs_ns2_nse *nse;
+ /* 2 byte DLCI header */
+ if (mtu <= 2)
+ return;
+ mtu -= 2;
+
if (mtu == bind->mtu)
return;
LOGBIND(bind, LOGL_INFO, "MTU changed from %d to %d.\n",
- bind->mtu, mtu);
+ bind->mtu + 2, mtu + 2);
- /* 2 byte DLCI header */
- bind->mtu = mtu - 2;
+ bind->mtu = mtu;
if (!bpriv->if_running)
return;