diff options
author | Anders Broman <anders.broman@ericsson.com> | 2021-01-21 16:08:10 +0100 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2021-01-21 16:08:10 +0100 |
commit | 4eb76c8ee86cb74f3127e43a97ef5d19d2b6e6de (patch) | |
tree | 1d9c31c0fd8c708209deecb090fcc73b0dd94f92 /epan/dissectors/packet-e1ap.c | |
parent | cb1bc50774af6222fb9961bf3bdcea980e785838 (diff) |
E1AP: Dissect E1AP over TCP with a 4 byte length indication.
Diffstat (limited to 'epan/dissectors/packet-e1ap.c')
-rw-r--r-- | epan/dissectors/packet-e1ap.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/epan/dissectors/packet-e1ap.c b/epan/dissectors/packet-e1ap.c index 0460633a84..4a6f2e2e6b 100644 --- a/epan/dissectors/packet-e1ap.c +++ b/epan/dissectors/packet-e1ap.c @@ -1163,6 +1163,7 @@ typedef struct { /* Global variables */ static dissector_handle_t e1ap_handle; +static dissector_handle_t e1ap_tcp_handle; /* Dissector tables */ static dissector_table_t e1ap_ies_dissector_table; @@ -10207,7 +10208,7 @@ static int dissect_E1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto /*--- End of included file: packet-e1ap-fn.c ---*/ -#line 134 "./asn1/e1ap/packet-e1ap-template.c" +#line 135 "./asn1/e1ap/packet-e1ap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) { @@ -10273,6 +10274,14 @@ dissect_e1ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ return tvb_captured_length(tvb); } +static int +dissect_e1ap_tcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data) +{ + tvbuff_t *new_tvb = tvb_new_subset_remaining(tvb, 4); + + return dissect_e1ap(new_tvb, pinfo, tree, data); + +} void proto_register_e1ap(void) { /* List of fields */ @@ -12619,7 +12628,7 @@ void proto_register_e1ap(void) { "UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-e1ap-hfarr.c ---*/ -#line 269 "./asn1/e1ap/packet-e1ap-template.c" +#line 278 "./asn1/e1ap/packet-e1ap-template.c" }; /* List of subtrees */ @@ -12935,7 +12944,7 @@ void proto_register_e1ap(void) { &ett_e1ap_UnsuccessfulOutcome, /*--- End of included file: packet-e1ap-ettarr.c ---*/ -#line 281 "./asn1/e1ap/packet-e1ap-template.c" +#line 290 "./asn1/e1ap/packet-e1ap-template.c" }; /* Register protocol */ @@ -12946,6 +12955,7 @@ void proto_register_e1ap(void) { /* Register dissector */ e1ap_handle = register_dissector("e1ap", dissect_e1ap, proto_e1ap); + e1ap_tcp_handle = register_dissector("e1ap_tcp", dissect_e1ap_tcp, proto_e1ap); /* Register dissector tables */ e1ap_ies_dissector_table = register_dissector_table("e1ap.ies", "E1AP-PROTOCOL-IES", proto_e1ap, FT_UINT32, BASE_DEC); @@ -12959,6 +12969,7 @@ void proto_reg_handoff_e1ap(void) { dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E1AP, e1ap_handle); + dissector_add_uint_with_preference("tcp.port", 0, e1ap_tcp_handle); dissector_add_uint("sctp.ppi", E1AP_PROTOCOL_ID, e1ap_handle); /*--- Included file: packet-e1ap-dis-tab.c ---*/ @@ -13147,7 +13158,7 @@ proto_reg_handoff_e1ap(void) /*--- End of included file: packet-e1ap-dis-tab.c ---*/ -#line 306 "./asn1/e1ap/packet-e1ap-template.c" +#line 317 "./asn1/e1ap/packet-e1ap-template.c" } /* |