aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rsvp.c
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2017-09-01 07:13:56 +0200
committerMichael Mann <mmann78@netscape.net>2017-09-02 16:17:41 +0000
commit501f30ce5fb3f105519aedd4ddb8693c119a63c3 (patch)
treee0f3615e38ae38fb705fa44cdc908c5176aff3f2 /epan/dissectors/packet-rsvp.c
parent692b1175e4d0493fcda0fbe8dd71ca33c2773a89 (diff)
RSVP: Add Session IPv4/6 P2MP LSP info
Bug: 13977 Change-Id: Ia43d746e7be1d24046c755fadb2454eba39dbe58 Reviewed-on: https://code.wireshark.org/review/23347 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-rsvp.c')
-rw-r--r--epan/dissectors/packet-rsvp.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c
index ad91c58159..153145bfd5 100644
--- a/epan/dissectors/packet-rsvp.c
+++ b/epan/dissectors/packet-rsvp.c
@@ -672,6 +672,18 @@ typedef struct rsvp_session_ipv4_uni_info {
guint32 ext_tunnel_id;
} rsvp_session_ipv4_uni_info;
+typedef struct rsvp_session_ipv4_p2mp_lsp_info {
+ address destination;
+ guint16 udp_dest_port;
+ guint32 ext_tunnel_id;
+} rsvp_session_ipv4_p2mp_lsp_info;
+
+typedef struct rsvp_session_ipv6_p2mp_lsp_info {
+ address destination;
+ guint16 udp_dest_port;
+ guint64 ext_tunnel_id;
+} rsvp_session_ipv6_p2mp_lsp_info;
+
typedef struct rsvp_session_ipv4_enni_info {
address destination;
guint16 udp_dest_port;
@@ -702,6 +714,8 @@ struct rsvp_request_key {
rsvp_session_ipv6_lsp_info session_ipv6_lsp;
rsvp_session_agg_ipv4_info session_agg_ipv4;
rsvp_session_ipv4_uni_info session_ipv4_uni;
+ rsvp_session_ipv4_p2mp_lsp_info session_ipv4_p2mp_lsp;
+ rsvp_session_ipv6_p2mp_lsp_info session_ipv6_p2mp_lsp;
rsvp_session_ipv4_enni_info session_ipv4_enni;
} u;
@@ -1990,6 +2004,38 @@ rsvp_equal(gconstpointer k1, gconstpointer k2)
break;
+ case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV4:
+ if (addresses_equal(&key1->u.session_ipv4_p2mp_lsp.destination,
+ &key2->u.session_ipv4_p2mp_lsp.destination) == FALSE)
+ return 0;
+
+ if (key1->u.session_ipv4_p2mp_lsp.udp_dest_port !=
+ key2->u.session_ipv4_p2mp_lsp.udp_dest_port)
+ return 0;
+
+
+ if (key1->u.session_ipv4_p2mp_lsp.ext_tunnel_id !=
+ key2->u.session_ipv4_p2mp_lsp.ext_tunnel_id)
+ return 0;
+
+ break;
+
+ case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV6:
+ if (addresses_equal(&key1->u.session_ipv6_p2mp_lsp.destination,
+ &key2->u.session_ipv6_p2mp_lsp.destination) == FALSE)
+ return 0;
+
+ if (key1->u.session_ipv6_p2mp_lsp.udp_dest_port !=
+ key2->u.session_ipv6_p2mp_lsp.udp_dest_port)
+ return 0;
+
+
+ if (key1->u.session_ipv6_p2mp_lsp.ext_tunnel_id !=
+ key2->u.session_ipv6_p2mp_lsp.ext_tunnel_id)
+ return 0;
+
+ break;
+
case RSVP_SESSION_TYPE_IPV4_E_NNI:
if (addresses_equal(&key1->u.session_ipv4_enni.destination,
&key2->u.session_ipv4_enni.destination) == FALSE)
@@ -7869,6 +7915,22 @@ dissect_rsvp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea
request_key.u.session_ipv4_uni.ext_tunnel_id = rsvph->ext_tunnel_id;
break;
+ case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV4:
+ set_address(&request_key.u.session_ipv4_p2mp_lsp.destination,
+ rsvph->destination.type, rsvph->destination.len,
+ rsvph->destination.data);
+ request_key.u.session_ipv4_p2mp_lsp.udp_dest_port = rsvph->udp_dest_port;
+ request_key.u.session_ipv4_p2mp_lsp.ext_tunnel_id = rsvph->ext_tunnel_id;
+ break;
+
+ case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV6:
+ set_address(&request_key.u.session_ipv6_p2mp_lsp.destination,
+ rsvph->destination.type, rsvph->destination.len,
+ rsvph->destination.data);
+ request_key.u.session_ipv6_p2mp_lsp.udp_dest_port = rsvph->udp_dest_port;
+ request_key.u.session_ipv6_p2mp_lsp.ext_tunnel_id = rsvph->ext_tunnel_id_ipv6_pre;
+ break;
+
case RSVP_SESSION_TYPE_IPV4_E_NNI:
set_address(&request_key.u.session_ipv4_enni.destination,
rsvph->destination.type, rsvph->destination.len,
@@ -7911,6 +7973,14 @@ dissect_rsvp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea
copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4_uni.destination,
&request_key.u.session_ipv4_uni.destination);
break;
+ case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV4:
+ copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4_p2mp_lsp.destination,
+ &request_key.u.session_ipv4_p2mp_lsp.destination);
+ break;
+ case RSVP_SESSION_TYPE_P2MP_LSP_TUNNEL_IPV6:
+ copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv6_p2mp_lsp.destination,
+ &request_key.u.session_ipv6_p2mp_lsp.destination);
+ break;
case RSVP_SESSION_TYPE_IPV4_E_NNI:
copy_address_wmem(wmem_file_scope(), &new_request_key->u.session_ipv4_enni.destination,
&request_key.u.session_ipv4_enni.destination);