aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2024-02-21 18:51:22 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2024-02-21 19:03:25 +0100
commiteb6fcc6744393e668802df011a5c69ebabd69f86 (patch)
treea9fc19f680605ab7112c3716c909469295ea7752
parenta4b4ae37588993c1e081416237b3706d5aac1a7e (diff)
gsup: Add PCO IEpespin/gsup
This IE is present in the ePDG Tunnel Request/Result messages to forward protocol configs between the UE (IKEv2) and the PGW (GTPv2C), with ePDG in the middle. https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/36023 https://gerrit.osmocom.org/c/libosmocore/+/36024
-rw-r--r--epan/dissectors/packet-gsm_gsup.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/epan/dissectors/packet-gsm_gsup.c b/epan/dissectors/packet-gsm_gsup.c
index 45ddf21e2d..53d60d32ff 100644
--- a/epan/dissectors/packet-gsm_gsup.c
+++ b/epan/dissectors/packet-gsm_gsup.c
@@ -79,6 +79,7 @@ enum osmo_gsup_iei {
OSMO_GSUP_ACCESS_POINT_NAME_IE = 0x12,
OSMO_GSUP_PDP_QOS_IE = 0x13,
OSMO_GSUP_CHARG_CHAR_IE = 0x14,
+ OSMO_GSUP_PCO_IE = 0x15,
OSMO_GSUP_RAND_IE = 0x20,
OSMO_GSUP_SRES_IE = 0x21,
OSMO_GSUP_KC_IE = 0x22,
@@ -343,6 +344,7 @@ static const value_string gsup_iei_types[] = {
{ OSMO_GSUP_ACCESS_POINT_NAME_IE, "Access Point Name (APN)" },
{ OSMO_GSUP_PDP_QOS_IE, "PDP Quality of Service (QoS)" },
{ OSMO_GSUP_CHARG_CHAR_IE, "Charging Character" },
+ { OSMO_GSUP_PCO_IE, "Protocol Configuration Options" },
{ OSMO_GSUP_RAND_IE, "RAND" },
{ OSMO_GSUP_SRES_IE, "SRES" },
{ OSMO_GSUP_KC_IE, "Kc" },
@@ -721,6 +723,7 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
gint apn_len;
guint32 ui32;
guint8 i;
+ tvbuff_t *subset_tvb;
tag = tvb_get_guint8(tvb, offset);
offset++;
@@ -816,6 +819,10 @@ dissect_gsup_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo,
case OSMO_GSUP_CHARG_CHAR_IE:
proto_tree_add_item(att_tree, hf_gsup_charg_char, tvb, offset, len, ENC_ASCII);
break;
+ case OSMO_GSUP_PCO_IE:
+ subset_tvb = tvb_new_subset_length(tvb, offset, len);
+ de_sm_pco(subset_tvb, att_tree, pinfo, 0, len, NULL, 0);
+ break;
case OSMO_GSUP_CAUSE_IE:
proto_tree_add_item(att_tree, hf_gsup_cause, tvb, offset, len, ENC_NA);
break;