gtp: add flags to gtp_tunnel object
Flags tells us what fields have been set in this object.
This is required by
./gtp-tunnel del
otherwise, build helper function adds the MS/UE address and kernel reports
ENOENT, and tunnel identifier is ignored.
Update gtp-tunnel tool to set flowid to zero in the GTP version 0 case,
otherwise kernel reports EINVAL since now this flag is not ever set.
Change-Id: I66677ab2d4de2c459ed9987c465fce6f059d6d93
diff --git a/src/internal.h b/src/internal.h
index ce8a683..1433621 100644
--- a/src/internal.h
+++ b/src/internal.h
@@ -20,6 +20,19 @@
};
};
+enum {
+ GTP_TUN_IFNS = (1 << 0),
+ GTP_TUN_IFIDX = (1 << 1),
+ GTP_TUN_FAMILY = (1 << 2),
+ GTP_TUN_MS_ADDR = (1 << 3),
+ GTP_TUN_SGSN_ADDR = (1 << 4),
+ GTP_TUN_VERSION = (1 << 5),
+ GTP_TUN_V0_TID = (1 << 6),
+ GTP_TUN_V0_FLOWID = (1 << 7),
+ GTP_TUN_V1_I_TEI = (1 << 8),
+ GTP_TUN_V1_O_TEI = (1 << 9),
+};
+
struct gtp_tunnel {
int ifns;
uint32_t ifidx;
@@ -36,6 +49,7 @@
uint32_t o_tei;
} v1;
} u;
+ uint32_t flags;
};
#endif