aboutsummaryrefslogtreecommitdiffstats
path: root/gtp/gtp.h
diff options
context:
space:
mode:
authorjjako <jjako>2003-10-21 19:09:53 +0000
committerjjako <jjako>2003-10-21 19:09:53 +0000
commit2c3813354edba78d5081a7e58fd271d1ddaa1d60 (patch)
tree7ff03bf092cad542c9596a1ef2f23e511a31e9a4 /gtp/gtp.h
parent08d331db63cf42d16d0b2b00533a37fde79eb2c2 (diff)
GTP1 functionality
Diffstat (limited to 'gtp/gtp.h')
-rw-r--r--gtp/gtp.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/gtp/gtp.h b/gtp/gtp.h
index 123339b..ebe869e 100644
--- a/gtp/gtp.h
+++ b/gtp/gtp.h
@@ -38,6 +38,9 @@
#define RESTART_FILE "gsn_restart"
#define NAMESIZE 1024
+/* GTP version 1 extension header type definitions. */
+#define GTP_EXT_PDCP_PDU 0xC0 /* PDCP PDU Number */
+
/* GTP version 1 message type definitions. Also covers version 0 except *
* for anonymous PDP context which was superceded in version 1 */
@@ -259,6 +262,7 @@ struct gsn_t {
int (*cb_delete_context) (struct pdp_t*);
int (*cb_create_context_ind) (struct pdp_t*);
int (*cb_unsup_ind) (struct sockaddr_in *peer);
+ int (*cb_extheader_ind) (struct sockaddr_in *peer);
int (*cb_conf) (int type, int cause, struct pdp_t *pdp, void* cbp);
int (*cb_data_ind) (struct pdp_t* pdp, void* pack, unsigned len);
@@ -282,7 +286,8 @@ struct gsn_t {
uint64_t unknown; /* Number of unknown messages 29.60 11.1.3 */
uint64_t unexpect; /* Number of unexpected messages 29.60 11.1.4 */
uint64_t dublicate; /* Number of dublicate or unsolicited replies */
- uint64_t missing; /* Number of missing mandatory field messages */
+ uint64_t missing; /* Number of missing information field messages */
+ uint64_t incorrect; /* Number of incorrect information field messages */
uint64_t invalid; /* Number of invalid message format messages */
};
@@ -312,7 +317,7 @@ extern int gtp_update_context(struct gsn_t *gsn, struct pdp_t *pdp,
void *cbp, struct in_addr* inetaddr);
extern int gtp_delete_context_req(struct gsn_t *gsn, struct pdp_t *pdp,
- void *cbp);
+ void *cbp, int teardown);
extern int gtp_data_req(struct gsn_t *gsn, struct pdp_t *pdp,
void *pack, unsigned len);
@@ -336,6 +341,9 @@ extern int gtp_set_cb_delete_context(struct gsn_t *gsn,
extern int gtp_set_cb_unsup_ind(struct gsn_t *gsn,
int (*cb) (struct sockaddr_in *peer));
+extern int gtp_set_cb_extheader_ind(struct gsn_t *gsn,
+ int (*cb) (struct sockaddr_in *peer));
+
extern int gtp_set_cb_conf(struct gsn_t *gsn,
int (*cb) (int type, int cause, struct pdp_t* pdp, void *cbp));
@@ -381,7 +389,8 @@ extern int gtp_delete_pdp_req(struct gsn_t *gsn, int version, void *cbp,
extern int gtp_delete_pdp_resp(struct gsn_t *gsn, int version,
struct sockaddr_in *peer, int fd,
void *pack, unsigned len,
- struct pdp_t *pdp, uint8_t cause);
+ struct pdp_t *pdp, struct pdp_t *linked_pdp,
+ uint8_t cause, int teardown);
extern int gtp_delete_pdp_ind(struct gsn_t *gsn, int version,
struct sockaddr_in *peer, int fd,