Linux Audio

Check our new training course

Loading...
v6.13.7
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _GTP_H_
 3#define _GTP_H_
 4
 5#include <linux/netdevice.h>
 6#include <linux/types.h>
 7#include <net/rtnetlink.h>
 8
 9/* General GTP protocol related definitions. */
10
11#define GTP0_PORT	3386
12#define GTP1U_PORT	2152
13
14/* GTP messages types */
15#define GTP_ECHO_REQ	1	/* Echo Request */
16#define GTP_ECHO_RSP	2	/* Echo Response */
17#define GTP_TPDU	255
18
19#define GTPIE_RECOVERY	14
20
21struct gtp0_header {	/* According to GSM TS 09.60. */
22	__u8	flags;
23	__u8	type;
24	__be16	length;
25	__be16	seq;
26	__be16	flow;
27	__u8	number;
28	__u8	spare[3];
29	__be64	tid;
30} __attribute__ ((packed));
31
32struct gtp1_header {	/* According to 3GPP TS 29.060. */
33	__u8	flags;
34	__u8	type;
35	__be16	length;
36	__be32	tid;
37} __attribute__ ((packed));
38
39struct gtp1_header_long {	/* According to 3GPP TS 29.060. */
40	__u8	flags;
41	__u8	type;
42	__be16	length;
43	__be32	tid;
44	__be16	seq;
45	__u8	npdu;
46	__u8	next;
47} __packed;
48
49/* GTP Information Element */
50struct gtp_ie {
51	__u8	tag;
52	__u8	val;
53} __packed;
54
55struct gtp0_packet {
56	struct gtp0_header gtp0_h;
57	struct gtp_ie ie;
58} __packed;
59
60struct gtp1u_packet {
61	struct gtp1_header_long gtp1u_h;
62	struct gtp_ie ie;
63} __packed;
64
65struct gtp_pdu_session_info {	/* According to 3GPP TS 38.415. */
66	u8	pdu_type;
67	u8	qfi;
68};
69
70static inline bool netif_is_gtp(const struct net_device *dev)
71{
72	return dev->rtnl_link_ops &&
73		!strcmp(dev->rtnl_link_ops->kind, "gtp");
74}
75
76#define GTP1_F_NPDU	0x01
77#define GTP1_F_SEQ	0x02
78#define GTP1_F_EXTHDR	0x04
79#define GTP1_F_MASK	0x07
80
81struct gtp_ext_hdr {
82	__u8	len;
83	__u8	data[];
84};
85
86#endif
v5.4
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _GTP_H_
 3#define _GTP_H_
 4
 
 
 
 
 5/* General GTP protocol related definitions. */
 6
 7#define GTP0_PORT	3386
 8#define GTP1U_PORT	2152
 9
 
 
 
10#define GTP_TPDU	255
11
 
 
12struct gtp0_header {	/* According to GSM TS 09.60. */
13	__u8	flags;
14	__u8	type;
15	__be16	length;
16	__be16	seq;
17	__be16	flow;
18	__u8	number;
19	__u8	spare[3];
20	__be64	tid;
21} __attribute__ ((packed));
22
23struct gtp1_header {	/* According to 3GPP TS 29.060. */
24	__u8	flags;
25	__u8	type;
26	__be16	length;
27	__be32	tid;
28} __attribute__ ((packed));
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30#define GTP1_F_NPDU	0x01
31#define GTP1_F_SEQ	0x02
32#define GTP1_F_EXTHDR	0x04
33#define GTP1_F_MASK	0x07
 
 
 
 
 
34
35#endif