blob: ce8a6832e502ff6bf5bad4d81b220cf37a148e56 [file] [log] [blame]
Pablo Neira Ayuso14506662014-02-20 18:43:15 +01001#ifndef INTERNAL_H
2#define INTERNAL_H 1
3
4#include "config.h"
5#ifdef HAVE_VISIBILITY_HIDDEN
6# define __visible __attribute__((visibility("default")))
7# define EXPORT_SYMBOL(x) typeof(x) (x) __visible
8#else
9# define EXPORT_SYMBOL
10#endif
11
Pablo Neira Ayuso18532952014-02-22 22:09:59 +010012#include <stdint.h>
13#include <netinet/in.h>
14
Oliver Smith717db092023-10-18 15:16:12 +020015struct gtp_addr {
16 sa_family_t family;
17 union {
18 struct in_addr ip4;
19 struct in6_addr ip6;
20 };
21};
22
Pablo Neira Ayuso18532952014-02-22 22:09:59 +010023struct gtp_tunnel {
Andreas Schultz49773302016-04-11 16:09:56 +020024 int ifns;
Pablo Neira Ayuso18532952014-02-22 22:09:59 +010025 uint32_t ifidx;
Oliver Smith717db092023-10-18 15:16:12 +020026 struct gtp_addr ms_addr;
27 struct gtp_addr sgsn_addr;
Pablo Neira Ayuso18532952014-02-22 22:09:59 +010028 int gtp_version;
Andreas Schultz17c816f2016-04-11 16:10:03 +020029 union {
30 struct {
31 uint64_t tid;
32 uint16_t flowid;
33 } v0;
34 struct {
35 uint32_t i_tei;
36 uint32_t o_tei;
37 } v1;
38 } u;
Pablo Neira Ayuso18532952014-02-22 22:09:59 +010039};
40
Pablo Neira Ayuso14506662014-02-20 18:43:15 +010041#endif