libosmogb  1.9.0.12-9519.202310132026
Osmocom Gb library
gsm_08_16.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <stdint.h>
9 #include <arpa/inet.h>
11 
17 struct gprs_ns_hdr {
18  uint8_t pdu_type;
19  uint8_t data[0];
20 } __attribute__((packed));
21 
22 
25  uint32_t ip_addr;
26  uint16_t udp_port;
27  uint8_t sig_weight;
28  uint8_t data_weight;
29 } __attribute__ ((packed));
30 
33  struct in6_addr ip_addr;
34  uint16_t udp_port;
35  uint8_t sig_weight;
36  uint8_t data_weight;
37 } __attribute__ ((packed));
38 
39 extern const struct value_string gprs_ns_pdu_strings[];
40 
44  NS_PDUT_RESET = 0x02,
46  NS_PDUT_BLOCK = 0x04,
51  NS_PDUT_ALIVE = 0x0a,
53  /* TS 48.016 Section 10.3.7, Table 10.3.7.1 */
54  SNS_PDUT_ACK = 0x0c,
55  SNS_PDUT_ADD = 0x0d,
60  SNS_PDUT_SIZE = 0x12,
62 };
63 
65 enum ns_ctrl_ie {
66  NS_IE_CAUSE = 0x00,
67  NS_IE_VCI = 0x01,
68  NS_IE_PDU = 0x02,
69  NS_IE_BVCI = 0x03,
70  NS_IE_NSEI = 0x04,
71  /* TS 48.016 Section 10.3, Table 10.3.1 */
78  NS_IE_IP_ADDR = 0x0b,
79  NS_IE_TRANS_ID = 0xff, /* osmocom. Spec has this IE but without IEI! */
80 };
81 
83 enum ns_cause {
95  /* TS 48.016 Section 10.3.2, Table 10.3.2.1 */
103 };
Definition: gsm_08_16.h:56
Definition: gsm_08_16.h:90
Definition: gsm_08_16.h:52
ns_pdu_type
NS PDU Type (TS 08.16, Section 10.3.7, Table 14)
Definition: gsm_08_16.h:42
Definition: gsm_08_16.h:97
Definition: gsm_08_16.h:59
Definition: gsm_08_16.h:94
Definition: gsm_08_16.h:49
Definition: gsm_08_16.h:88
uint8_t data_weight
Definition: gsm_08_16.h:36
Definition: gsm_08_16.h:76
Definition: gsm_08_16.h:51
uint8_t pdu_type
NS PDU type.
Definition: gsm_08_16.h:18
Definition: gsm_08_16.h:74
Definition: gsm_08_16.h:86
Definition: gsm_08_16.h:84
Definition: gsm_08_16.h:70
Definition: gsm_08_16.h:89
enum ns_pdu_type __attribute__
Definition: gsm_08_16.h:46
Definition: gsm_08_16.h:66
Definition: gsm_08_16.h:98
Section 10.3.2d List of IP6 Elements.
Definition: gsm_08_16.h:32
Definition: gsm_08_16.h:45
Definition: gsm_08_16.h:78
uint16_t udp_port
Definition: gsm_08_16.h:34
uint8_t data[0]
variable-length payload
Definition: gsm_08_16.h:19
Definition: gsm_08_16.h:96
uint16_t udp_port
Definition: gsm_08_16.h:26
uint32_t ip_addr
Definition: gsm_08_16.h:9
Definition: gsm_08_16.h:85
Definition: gsm_08_16.h:50
Definition: gsm_08_16.h:100
Definition: gsm_08_16.h:79
Definition: gsm_08_16.h:44
Definition: gsm_08_16.h:73
uint8_t sig_weight
Definition: gsm_08_16.h:35
Definition: gsm_08_16.h:58
Definition: gsm_08_16.h:101
ns_cause
NS Cause (TS 08.16, Section 10.3.2, Table 13)
Definition: gsm_08_16.h:83
Section 10.3.2c List of IP4 Elements.
Definition: gsm_08_16.h:24
Definition: gsm_08_16.h:87
uint8_t data_weight
Definition: gsm_08_16.h:28
const struct value_string gprs_ns_pdu_strings[]
Definition: gprs_ns.c:397
Definition: gsm_08_16.h:55
Definition: gsm_08_16.h:72
Definition: gsm_08_16.h:61
Definition: gsm_08_16.h:69
Definition: gsm_08_16.h:47
Definition: gsm_08_16.h:91
Definition: gsm_08_16.h:99
Definition: gsm_08_16.h:60
Definition: gsm_08_16.h:77
Definition: gsm_08_16.h:93
Definition: gsm_08_16.h:75
Definition: gsm_08_16.h:68
Definition: gsm_08_16.h:43
uint8_t sig_weight
Definition: gsm_08_16.h:27
uint32_t ip_addr
Definition: gsm_08_16.h:25
Definition: gsm_08_16.h:54
Definition: gsm_08_16.h:57
Definition: gsm_08_16.h:48
Definition: gsm_08_16.h:67
Definition: gsm_08_16.h:92
ns_ctrl_ie
NS Control IE (TS 08.16, Section 10.3, Table 12)
Definition: gsm_08_16.h:65
Definition: gsm_08_16.h:102
Common header of GPRS NS.
Definition: gsm_08_16.h:17