forked from osmocom/wireshark
H225, H245 over IPv6
This commit extends h225 and h245 dissectors to support dissection of ipv6 packets. Change-Id: Id8c045344711a96f15d619ddd72065aa3712c429 Reviewed-on: https://code.wireshark.org/review/10799 Reviewed-by: Tomáš Kukosa <tomas.kukosa@unify.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
parent
c00420efa2
commit
0eeeab7c5e
|
@ -327,7 +327,18 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
|
|||
ipv4_address = tvb_get_ipv4(value_tvb, 0);
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_PARS H245TransportAddress/ipAddress/port VAL_PTR = &ipv4_port
|
||||
#.FN_BODY H245TransportAddress/ip6Address/ip VAL_PTR = &value_tvb
|
||||
tvbuff_t *value_tvb;
|
||||
|
||||
ipv6_address = ipv6_address_zeros;
|
||||
%(DEFAULT_BODY)s
|
||||
if (value_tvb)
|
||||
tvb_get_ipv6(value_tvb, 0, &ipv6_address);
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_PARS H245TransportAddress/ipAddress/port VAL_PTR = &ip_port
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_PARS H245TransportAddress/ip6Address/port VAL_PTR = &ip_port
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY ParallelH245Control/_item VAL_PTR = &h245_tvb
|
||||
tvbuff_t *h245_tvb = NULL;
|
||||
|
@ -430,7 +441,8 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
|
|||
#----------------------------------------------------------------------------------------
|
||||
#.FN_HDR H245TransportAddress
|
||||
ipv4_address=0;
|
||||
ipv4_port=0;
|
||||
ipv6_address = ipv6_address_zeros;
|
||||
ip_port=0;
|
||||
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
|
@ -438,21 +450,26 @@ IsupNumber/nationalStandardPartyNumber isupNationalStandardPartyNumber
|
|||
/* we need this info for TAPing */
|
||||
h225_pi->is_h245 = TRUE;
|
||||
h225_pi->h245_address = ipv4_address;
|
||||
h225_pi->h245_port = ipv4_port;
|
||||
h225_pi->h245_port = ip_port;
|
||||
|
||||
if((!actx->pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && h245_handle){
|
||||
if ( !actx->pinfo->fd->flags.visited && h245_handle && ip_port!=0 ) {
|
||||
address src_addr;
|
||||
conversation_t *conv=NULL;
|
||||
|
||||
SET_ADDRESS(&src_addr, AT_IPv4, 4, &ipv4_address);
|
||||
if (ipv4_address!=0) {
|
||||
SET_ADDRESS(&src_addr, AT_IPv4, 4, &ipv4_address);
|
||||
} else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
|
||||
SET_ADDRESS(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
|
||||
} else {
|
||||
return offset;
|
||||
}
|
||||
|
||||
conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
|
||||
conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
|
||||
if(!conv){
|
||||
conv=conversation_new(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
|
||||
conv=conversation_new(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
|
||||
conversation_set_dissector(conv, h245_handle);
|
||||
}
|
||||
}
|
||||
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY FacilityReason VAL_PTR = &value
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
#include "packet-q931.h"
|
||||
#include "packet-ssl.h"
|
||||
|
||||
|
||||
#define PNAME "H323-MESSAGES"
|
||||
#define PSNAME "H.225.0"
|
||||
#define PFNAME "h225"
|
||||
|
@ -141,8 +140,10 @@ static gboolean h225_h245_in_tree = TRUE;
|
|||
static gboolean h225_tp_in_tree = TRUE;
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ipv4_address;
|
||||
static guint32 ipv4_port;
|
||||
static guint32 ipv4_address;
|
||||
static struct e_in6_addr ipv6_address;
|
||||
static struct e_in6_addr ipv6_address_zeros = {{0}};
|
||||
static guint32 ip_port;
|
||||
static gboolean contains_faststart = FALSE;
|
||||
static e_guid_t *call_id_guid;
|
||||
|
||||
|
@ -248,7 +249,6 @@ h225rassrt_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, co
|
|||
|
||||
#include "packet-h225-fn.c"
|
||||
|
||||
|
||||
/* Forward declaration we need below */
|
||||
void proto_reg_handoff_h225(void);
|
||||
|
||||
|
|
|
@ -855,6 +855,27 @@ if (h245_pi != NULL)
|
|||
#.FN_BODY UnicastAddress/iPAddress/tsapIdentifier VAL_PTR = &tsapIdentifier
|
||||
guint32 tsapIdentifier;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
if (upcoming_channel && upcoming_channel->upcoming_addr) {
|
||||
upcoming_channel->upcoming_addr->port = tsapIdentifier;
|
||||
}
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY UnicastAddress/iP6Address/network VAL_PTR = &value_tvb
|
||||
tvbuff_t *value_tvb;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
if (upcoming_channel && upcoming_channel->upcoming_addr) {
|
||||
tvb_memcpy(value_tvb, upcoming_channel->upcoming_addr->addr_buf, 0, 16);
|
||||
SET_ADDRESS(&upcoming_channel->upcoming_addr->addr, AT_IPv6, 16, upcoming_channel->upcoming_addr->addr_buf);
|
||||
}
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY UnicastAddress/iP6Address/tsapIdentifier VAL_PTR = &tsapIdentifier
|
||||
guint32 tsapIdentifier;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
if (upcoming_channel && upcoming_channel->upcoming_addr) {
|
||||
|
|
|
@ -60,7 +60,6 @@
|
|||
#include "packet-q931.h"
|
||||
#include "packet-ssl.h"
|
||||
|
||||
|
||||
#define PNAME "H323-MESSAGES"
|
||||
#define PSNAME "H.225.0"
|
||||
#define PFNAME "h225"
|
||||
|
@ -333,7 +332,8 @@ static int hf_h225_node = -1; /* OCTET_STRING_SIZE_6 */
|
|||
static int hf_h225_netnum = -1; /* OCTET_STRING_SIZE_4 */
|
||||
static int hf_h225_h245IpxPort = -1; /* OCTET_STRING_SIZE_2 */
|
||||
static int hf_h225_h245Ip6Address = -1; /* T_h245Ip6Address */
|
||||
static int hf_h225_h245Ip6 = -1; /* OCTET_STRING_SIZE_16 */
|
||||
static int hf_h225_h245Ip6 = -1; /* T_h245Ip6 */
|
||||
static int hf_h225_port_01 = -1; /* T_port */
|
||||
static int hf_h225_netBios = -1; /* OCTET_STRING_SIZE_16 */
|
||||
static int hf_h225_nsap = -1; /* OCTET_STRING_SIZE_1_20 */
|
||||
static int hf_h225_nonStandardAddress = -1; /* NonStandardParameter */
|
||||
|
@ -911,7 +911,7 @@ static int hf_h225_stopped = -1; /* NULL */
|
|||
static int hf_h225_notAvailable = -1; /* NULL */
|
||||
|
||||
/*--- End of included file: packet-h225-hf.c ---*/
|
||||
#line 132 "../../asn1/h225/packet-h225-template.c"
|
||||
#line 131 "../../asn1/h225/packet-h225-template.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_h225 = -1;
|
||||
|
@ -1159,7 +1159,7 @@ static gint ett_h225_ServiceControlResponse = -1;
|
|||
static gint ett_h225_T_result = -1;
|
||||
|
||||
/*--- End of included file: packet-h225-ett.c ---*/
|
||||
#line 136 "../../asn1/h225/packet-h225-template.c"
|
||||
#line 135 "../../asn1/h225/packet-h225-template.c"
|
||||
|
||||
/* Preferences */
|
||||
static guint h225_tls_port = TLS_PORT_CS;
|
||||
|
@ -1168,8 +1168,10 @@ static gboolean h225_h245_in_tree = TRUE;
|
|||
static gboolean h225_tp_in_tree = TRUE;
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ipv4_address;
|
||||
static guint32 ipv4_port;
|
||||
static guint32 ipv4_address;
|
||||
static struct e_in6_addr ipv6_address;
|
||||
static struct e_in6_addr ipv6_address_zeros = {{0}};
|
||||
static guint32 ip_port;
|
||||
static gboolean contains_faststart = FALSE;
|
||||
static e_guid_t *call_id_guid;
|
||||
|
||||
|
@ -1317,7 +1319,7 @@ dissect_h225_T_h245Ip(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
|
|||
static int
|
||||
dissect_h225_T_h245IpPort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 65535U, &ipv4_port, FALSE);
|
||||
0U, 65535U, &ip_port, FALSE);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
@ -1457,17 +1459,35 @@ dissect_h225_T_h245IpxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
|
||||
|
||||
static int
|
||||
dissect_h225_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
dissect_h225_T_h245Ip6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 331 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *value_tvb;
|
||||
|
||||
ipv6_address = ipv6_address_zeros;
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
16, 16, FALSE, NULL);
|
||||
16, 16, FALSE, &value_tvb);
|
||||
|
||||
if (value_tvb)
|
||||
tvb_get_ipv6(value_tvb, 0, &ipv6_address);
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
dissect_h225_T_port(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 65535U, &ip_port, FALSE);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static const per_sequence_t T_h245Ip6Address_sequence[] = {
|
||||
{ &hf_h225_h245Ip6 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_16 },
|
||||
{ &hf_h225_port , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
|
||||
{ &hf_h225_h245Ip6 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6 },
|
||||
{ &hf_h225_port_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_T_port },
|
||||
{ NULL, 0, 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -1481,6 +1501,16 @@ dissect_h225_T_h245Ip6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
|
||||
|
||||
|
||||
static int
|
||||
dissect_h225_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
16, 16, FALSE, NULL);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
dissect_h225_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -1538,7 +1568,7 @@ static const per_sequence_t H221NonStandard_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 610 "../../asn1/h225/h225.cnf"
|
||||
#line 627 "../../asn1/h225/h225.cnf"
|
||||
t35CountryCode = 0;
|
||||
t35Extension = 0;
|
||||
manufacturerCode = 0;
|
||||
|
@ -1546,7 +1576,7 @@ dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_H221NonStandard, H221NonStandard_sequence);
|
||||
|
||||
#line 614 "../../asn1/h225/h225.cnf"
|
||||
#line 631 "../../asn1/h225/h225.cnf"
|
||||
h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
|
||||
proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
|
||||
|
||||
|
@ -1568,7 +1598,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 591 "../../asn1/h225/h225.cnf"
|
||||
#line 608 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
nsiOID = "";
|
||||
|
@ -1597,7 +1627,7 @@ dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
|
||||
static int
|
||||
dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 625 "../../asn1/h225/h225.cnf"
|
||||
#line 642 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *next_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -1620,7 +1650,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = {
|
|||
|
||||
int
|
||||
dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 623 "../../asn1/h225/h225.cnf"
|
||||
#line 640 "../../asn1/h225/h225.cnf"
|
||||
nsp_handle = NULL;
|
||||
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -1654,35 +1684,41 @@ static const per_choice_t H245TransportAddress_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 432 "../../asn1/h225/h225.cnf"
|
||||
#line 443 "../../asn1/h225/h225.cnf"
|
||||
ipv4_address=0;
|
||||
ipv4_port=0;
|
||||
ipv6_address = ipv6_address_zeros;
|
||||
ip_port=0;
|
||||
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_H245TransportAddress, H245TransportAddress_choice,
|
||||
NULL);
|
||||
|
||||
#line 438 "../../asn1/h225/h225.cnf"
|
||||
#line 450 "../../asn1/h225/h225.cnf"
|
||||
/* we need this info for TAPing */
|
||||
h225_pi->is_h245 = TRUE;
|
||||
h225_pi->h245_address = ipv4_address;
|
||||
h225_pi->h245_port = ipv4_port;
|
||||
h225_pi->h245_port = ip_port;
|
||||
|
||||
if((!actx->pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && h245_handle){
|
||||
if ( !actx->pinfo->fd->flags.visited && h245_handle && ip_port!=0 ) {
|
||||
address src_addr;
|
||||
conversation_t *conv=NULL;
|
||||
|
||||
SET_ADDRESS(&src_addr, AT_IPv4, 4, &ipv4_address);
|
||||
if (ipv4_address!=0) {
|
||||
SET_ADDRESS(&src_addr, AT_IPv4, 4, &ipv4_address);
|
||||
} else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
|
||||
SET_ADDRESS(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
|
||||
} else {
|
||||
return offset;
|
||||
}
|
||||
|
||||
conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
|
||||
conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
|
||||
if(!conv){
|
||||
conv=conversation_new(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR2|NO_PORT2);
|
||||
conv=conversation_new(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
|
||||
conversation_set_dissector(conv, h245_handle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
@ -2007,7 +2043,7 @@ dissect_h225_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|||
|
||||
static int
|
||||
dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 720 "../../asn1/h225/h225.cnf"
|
||||
#line 737 "../../asn1/h225/h225.cnf"
|
||||
int min_len, max_len;
|
||||
gboolean has_extension;
|
||||
|
||||
|
@ -2806,13 +2842,13 @@ static const per_sequence_t TunnelledProtocol_sequence[] = {
|
|||
|
||||
int
|
||||
dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 568 "../../asn1/h225/h225.cnf"
|
||||
#line 585 "../../asn1/h225/h225.cnf"
|
||||
tpOID = "";
|
||||
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
|
||||
|
||||
#line 570 "../../asn1/h225/h225.cnf"
|
||||
#line 587 "../../asn1/h225/h225.cnf"
|
||||
tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
|
||||
|
||||
return offset;
|
||||
|
@ -2990,7 +3026,7 @@ dissect_h225_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p
|
|||
|
||||
static int
|
||||
dissect_h225_T_guid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 542 "../../asn1/h225/h225.cnf"
|
||||
#line 559 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *guid_tvb = NULL;
|
||||
|
||||
actx->value_ptr = &guid_tvb;
|
||||
|
@ -3793,7 +3829,7 @@ dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
|
||||
static int
|
||||
dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 682 "../../asn1/h225/h225.cnf"
|
||||
#line 699 "../../asn1/h225/h225.cnf"
|
||||
guint32 value_int = (guint32)-1;
|
||||
gef_ctx_t *gefx;
|
||||
|
||||
|
@ -3811,7 +3847,7 @@ dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_,
|
|||
|
||||
static int
|
||||
dissect_h225_T_oid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 691 "../../asn1/h225/h225.cnf"
|
||||
#line 708 "../../asn1/h225/h225.cnf"
|
||||
const gchar *oid_str = NULL;
|
||||
gef_ctx_t *gefx;
|
||||
|
||||
|
@ -3841,7 +3877,7 @@ static const per_choice_t GenericIdentifier_choice[] = {
|
|||
|
||||
int
|
||||
dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 668 "../../asn1/h225/h225.cnf"
|
||||
#line 685 "../../asn1/h225/h225.cnf"
|
||||
gef_ctx_t *gefx;
|
||||
proto_item* ti;
|
||||
|
||||
|
@ -3849,7 +3885,7 @@ dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
ett_h225_GenericIdentifier, GenericIdentifier_choice,
|
||||
NULL);
|
||||
|
||||
#line 671 "../../asn1/h225/h225.cnf"
|
||||
#line 688 "../../asn1/h225/h225.cnf"
|
||||
gef_ctx_update_key(gef_ctx_get(actx->private_data));
|
||||
gefx = gef_ctx_get(actx->private_data);
|
||||
if (gefx) {
|
||||
|
@ -3866,7 +3902,7 @@ dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
|
||||
static int
|
||||
dissect_h225_T_raw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 701 "../../asn1/h225/h225.cnf"
|
||||
#line 718 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *value_tvb;
|
||||
gef_ctx_t *gefx;
|
||||
proto_item* ti;
|
||||
|
@ -3984,7 +4020,7 @@ static const per_sequence_t EnumeratedParameter_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 650 "../../asn1/h225/h225.cnf"
|
||||
#line 667 "../../asn1/h225/h225.cnf"
|
||||
gef_ctx_t *parent_gefx;
|
||||
|
||||
parent_gefx = gef_ctx_get(actx->private_data);
|
||||
|
@ -3993,7 +4029,7 @@ dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
|
||||
|
||||
#line 655 "../../asn1/h225/h225.cnf"
|
||||
#line 672 "../../asn1/h225/h225.cnf"
|
||||
actx->private_data = parent_gefx;
|
||||
|
||||
return offset;
|
||||
|
@ -4008,7 +4044,7 @@ static const per_sequence_t GenericData_sequence[] = {
|
|||
|
||||
int
|
||||
dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 636 "../../asn1/h225/h225.cnf"
|
||||
#line 653 "../../asn1/h225/h225.cnf"
|
||||
void *priv_data = actx->private_data;
|
||||
gef_ctx_t *gefx;
|
||||
|
||||
|
@ -4022,7 +4058,7 @@ dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_GenericData, GenericData_sequence);
|
||||
|
||||
#line 646 "../../asn1/h225/h225.cnf"
|
||||
#line 663 "../../asn1/h225/h225.cnf"
|
||||
actx->private_data = priv_data;
|
||||
|
||||
return offset;
|
||||
|
@ -4061,13 +4097,13 @@ dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|||
|
||||
static int
|
||||
dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 660 "../../asn1/h225/h225.cnf"
|
||||
#line 677 "../../asn1/h225/h225.cnf"
|
||||
void *priv_data = actx->private_data;
|
||||
actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor");
|
||||
|
||||
offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index);
|
||||
|
||||
#line 663 "../../asn1/h225/h225.cnf"
|
||||
#line 680 "../../asn1/h225/h225.cnf"
|
||||
actx->private_data = priv_data;
|
||||
|
||||
return offset;
|
||||
|
@ -4090,7 +4126,7 @@ dissect_h225_SEQUENCE_OF_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, as
|
|||
|
||||
static int
|
||||
dissect_h225_ParallelH245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 333 "../../asn1/h225/h225.cnf"
|
||||
#line 344 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *h245_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4240,13 +4276,13 @@ static const per_sequence_t Setup_UUIE_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_Setup_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 386 "../../asn1/h225/h225.cnf"
|
||||
#line 397 "../../asn1/h225/h225.cnf"
|
||||
contains_faststart = FALSE;
|
||||
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Setup_UUIE, Setup_UUIE_sequence);
|
||||
|
||||
#line 390 "../../asn1/h225/h225.cnf"
|
||||
#line 401 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_SETUP;
|
||||
if (contains_faststart == TRUE )
|
||||
|
@ -4296,7 +4332,7 @@ dissect_h225_CallProceeding_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence);
|
||||
|
||||
#line 399 "../../asn1/h225/h225.cnf"
|
||||
#line 410 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_CALL_PROCEDING;
|
||||
if (contains_faststart == TRUE )
|
||||
|
@ -4337,7 +4373,7 @@ dissect_h225_Connect_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Connect_UUIE, Connect_UUIE_sequence);
|
||||
|
||||
#line 423 "../../asn1/h225/h225.cnf"
|
||||
#line 434 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_CONNECT;
|
||||
if (contains_faststart == TRUE )
|
||||
|
@ -4376,7 +4412,7 @@ dissect_h225_Alerting_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Alerting_UUIE, Alerting_UUIE_sequence);
|
||||
|
||||
#line 408 "../../asn1/h225/h225.cnf"
|
||||
#line 419 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_ALERTING;
|
||||
if (contains_faststart == TRUE )
|
||||
|
@ -4404,7 +4440,7 @@ dissect_h225_Information_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Information_UUIE, Information_UUIE_sequence);
|
||||
|
||||
#line 357 "../../asn1/h225/h225.cnf"
|
||||
#line 368 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_INFORMATION;
|
||||
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
|
||||
|
@ -4523,7 +4559,7 @@ static const per_choice_t ReleaseCompleteReason_choice[] = {
|
|||
|
||||
int
|
||||
dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 535 "../../asn1/h225/h225.cnf"
|
||||
#line 552 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4559,7 +4595,7 @@ dissect_h225_ReleaseComplete_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence);
|
||||
|
||||
#line 417 "../../asn1/h225/h225.cnf"
|
||||
#line 428 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_RELEASE_COMPLET;
|
||||
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
|
||||
|
@ -4600,7 +4636,7 @@ static const per_choice_t FacilityReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_FacilityReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 459 "../../asn1/h225/h225.cnf"
|
||||
#line 476 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4673,7 +4709,7 @@ dissect_h225_Facility_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Facility_UUIE, Facility_UUIE_sequence);
|
||||
|
||||
#line 378 "../../asn1/h225/h225.cnf"
|
||||
#line 389 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_FACILITY;
|
||||
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
|
||||
|
@ -4702,7 +4738,7 @@ dissect_h225_Progress_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Progress_UUIE, Progress_UUIE_sequence);
|
||||
|
||||
#line 363 "../../asn1/h225/h225.cnf"
|
||||
#line 374 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_PROGRESS;
|
||||
if (contains_faststart == TRUE )
|
||||
|
@ -4719,7 +4755,7 @@ static int
|
|||
dissect_h225_T_empty_flg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
|
||||
|
||||
#line 347 "../../asn1/h225/h225.cnf"
|
||||
#line 358 "../../asn1/h225/h225.cnf"
|
||||
h225_pi->cs_type = H225_EMPTY;
|
||||
|
||||
return offset;
|
||||
|
@ -4739,7 +4775,7 @@ dissect_h225_Status_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_Status_UUIE, Status_UUIE_sequence);
|
||||
|
||||
#line 351 "../../asn1/h225/h225.cnf"
|
||||
#line 362 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_STATUS;
|
||||
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
|
||||
|
@ -4778,7 +4814,7 @@ dissect_h225_SetupAcknowledge_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence);
|
||||
|
||||
#line 372 "../../asn1/h225/h225.cnf"
|
||||
#line 383 "../../asn1/h225/h225.cnf"
|
||||
/* Add to packet info */
|
||||
h225_pi->cs_type = H225_SETUP_ACK;
|
||||
g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
|
||||
|
@ -4882,7 +4918,7 @@ dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|||
|
||||
static int
|
||||
dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 556 "../../asn1/h225/h225.cnf"
|
||||
#line 573 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *h4501_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4922,7 +4958,7 @@ dissect_h225_T_h245Tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
|
||||
static int
|
||||
dissect_h225_H245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 340 "../../asn1/h225/h225.cnf"
|
||||
#line 351 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *h245_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4979,7 +5015,7 @@ dissect_h225_CallLinkage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_
|
|||
|
||||
static int
|
||||
dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 578 "../../asn1/h225/h225.cnf"
|
||||
#line 595 "../../asn1/h225/h225.cnf"
|
||||
tvbuff_t *next_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -5015,7 +5051,7 @@ static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 576 "../../asn1/h225/h225.cnf"
|
||||
#line 593 "../../asn1/h225/h225.cnf"
|
||||
tp_handle = NULL;
|
||||
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -5863,7 +5899,7 @@ static const per_choice_t GatekeeperRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 466 "../../asn1/h225/h225.cnf"
|
||||
#line 483 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6165,7 +6201,7 @@ static const per_choice_t RegistrationRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_RegistrationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 521 "../../asn1/h225/h225.cnf"
|
||||
#line 538 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6228,7 +6264,7 @@ static const per_choice_t UnregRequestReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_UnregRequestReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 473 "../../asn1/h225/h225.cnf"
|
||||
#line 490 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6313,7 +6349,7 @@ static const per_choice_t UnregRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 480 "../../asn1/h225/h225.cnf"
|
||||
#line 497 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6581,7 +6617,7 @@ static const per_choice_t AdmissionRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 507 "../../asn1/h225/h225.cnf"
|
||||
#line 524 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6713,7 +6749,7 @@ static const per_choice_t BandRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 487 "../../asn1/h225/h225.cnf"
|
||||
#line 504 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6765,7 +6801,7 @@ static const per_choice_t DisengageReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_DisengageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 494 "../../asn1/h225/h225.cnf"
|
||||
#line 511 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6852,7 +6888,7 @@ static const per_choice_t DisengageRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 500 "../../asn1/h225/h225.cnf"
|
||||
#line 517 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -6998,7 +7034,7 @@ static const per_choice_t LocationRejectReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 514 "../../asn1/h225/h225.cnf"
|
||||
#line 531 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -7369,7 +7405,7 @@ static const per_choice_t InfoRequestNakReason_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 528 "../../asn1/h225/h225.cnf"
|
||||
#line 545 "../../asn1/h225/h225.cnf"
|
||||
gint32 value;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -7629,8 +7665,7 @@ static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
|
|||
|
||||
|
||||
/*--- End of included file: packet-h225-fn.c ---*/
|
||||
#line 250 "../../asn1/h225/packet-h225-template.c"
|
||||
|
||||
#line 251 "../../asn1/h225/packet-h225-template.c"
|
||||
|
||||
/* Forward declaration we need below */
|
||||
void proto_reg_handoff_h225(void);
|
||||
|
@ -9013,7 +9048,11 @@ void proto_register_h225(void) {
|
|||
{ &hf_h225_h245Ip6,
|
||||
{ "ip", "h225.ip",
|
||||
FT_IPv6, BASE_NONE, NULL, 0,
|
||||
"OCTET_STRING_SIZE_16", HFILL }},
|
||||
"T_h245Ip6", HFILL }},
|
||||
{ &hf_h225_port_01,
|
||||
{ "port", "h225.port",
|
||||
FT_UINT32, BASE_DEC, NULL, 0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_h225_netBios,
|
||||
{ "netBios", "h225.netBios",
|
||||
FT_BYTES, BASE_NONE, NULL, 0,
|
||||
|
|
|
@ -1414,8 +1414,8 @@ static int hf_h245_node = -1; /* OCTET_STRING_SIZE_6 */
|
|||
static int hf_h245_netnum = -1; /* OCTET_STRING_SIZE_4 */
|
||||
static int hf_h245_ipx_tsapIdentifier = -1; /* OCTET_STRING_SIZE_2 */
|
||||
static int hf_h245_iP6Address = -1; /* T_iP6Address */
|
||||
static int hf_h245_ip6_network = -1; /* OCTET_STRING_SIZE_16 */
|
||||
static int hf_h245_ipv6_tsapIdentifier = -1; /* INTEGER_0_65535 */
|
||||
static int hf_h245_ip6_network = -1; /* T_ip6_network */
|
||||
static int hf_h245_ipv6_tsapIdentifier = -1; /* T_ipv6_tsapIdentifier */
|
||||
static int hf_h245_netBios = -1; /* OCTET_STRING_SIZE_16 */
|
||||
static int hf_h245_iPSourceRouteAddress = -1; /* T_iPSourceRouteAddress */
|
||||
static int hf_h245_routing = -1; /* T_routing */
|
||||
|
@ -2530,7 +2530,7 @@ static const per_sequence_t H221NonStandardID_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h245_H221NonStandardID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 945 "../../asn1/h245/h245.cnf"
|
||||
#line 966 "../../asn1/h245/h245.cnf"
|
||||
t35CountryCode = 0;
|
||||
t35Extension = 0;
|
||||
manufacturerCode = 0;
|
||||
|
@ -2538,7 +2538,7 @@ dissect_h245_H221NonStandardID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
|
|||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
ett_h245_H221NonStandardID, H221NonStandardID_sequence);
|
||||
|
||||
#line 949 "../../asn1/h245/h245.cnf"
|
||||
#line 970 "../../asn1/h245/h245.cnf"
|
||||
h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
|
||||
proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
|
||||
|
||||
|
@ -2560,7 +2560,7 @@ static const per_choice_t NonStandardIdentifier_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h245_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 926 "../../asn1/h245/h245.cnf"
|
||||
#line 947 "../../asn1/h245/h245.cnf"
|
||||
gint32 value;
|
||||
|
||||
nsiOID = "";
|
||||
|
@ -2589,7 +2589,7 @@ dissect_h245_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
|
|||
|
||||
static int
|
||||
dissect_h245_T_nsd_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 960 "../../asn1/h245/h245.cnf"
|
||||
#line 981 "../../asn1/h245/h245.cnf"
|
||||
tvbuff_t *next_tvb = NULL;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -2612,7 +2612,7 @@ static const per_sequence_t NonStandardParameter_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h245_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 958 "../../asn1/h245/h245.cnf"
|
||||
#line 979 "../../asn1/h245/h245.cnf"
|
||||
nsp_handle = NULL;
|
||||
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4257,7 +4257,7 @@ dissect_h245_T_payloadDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *
|
|||
|
||||
static int
|
||||
dissect_h245_T_rtpPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 911 "../../asn1/h245/h245.cnf"
|
||||
#line 932 "../../asn1/h245/h245.cnf"
|
||||
unsigned int pt;
|
||||
|
||||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -4281,7 +4281,7 @@ static const per_sequence_t RTPPayloadType_sequence[] = {
|
|||
|
||||
static int
|
||||
dissect_h245_RTPPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 903 "../../asn1/h245/h245.cnf"
|
||||
#line 924 "../../asn1/h245/h245.cnf"
|
||||
rfc_number = 0;
|
||||
|
||||
offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -7268,7 +7268,7 @@ static const per_choice_t DataType_choice[] = {
|
|||
|
||||
static int
|
||||
dissect_h245_DataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 986 "../../asn1/h245/h245.cnf"
|
||||
#line 1007 "../../asn1/h245/h245.cnf"
|
||||
gint choice_index;
|
||||
|
||||
offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
|
||||
|
@ -8103,9 +8103,48 @@ dissect_h245_T_iPXAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U
|
|||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
dissect_h245_T_ip6_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 866 "../../asn1/h245/h245.cnf"
|
||||
tvbuff_t *value_tvb;
|
||||
|
||||
offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
|
||||
16, 16, FALSE, &value_tvb);
|
||||
|
||||
|
||||
if (upcoming_channel && upcoming_channel->upcoming_addr) {
|
||||
tvb_memcpy(value_tvb, upcoming_channel->upcoming_addr->addr_buf, 0, 16);
|
||||
SET_ADDRESS(&upcoming_channel->upcoming_addr->addr, AT_IPv6, 16, upcoming_channel->upcoming_addr->addr_buf);
|
||||
}
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
dissect_h245_T_ipv6_tsapIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 877 "../../asn1/h245/h245.cnf"
|
||||
guint32 tsapIdentifier;
|
||||
|
||||
offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
|
||||
0U, 65535U, &tsapIdentifier, FALSE);
|
||||
|
||||
|
||||
if (upcoming_channel && upcoming_channel->upcoming_addr) {
|
||||
upcoming_channel->upcoming_addr->port = tsapIdentifier;
|
||||
}
|
||||
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
||||
static const per_sequence_t T_iP6Address_sequence[] = {
|
||||
{ &hf_h245_ip6_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_16 },
|
||||
{ &hf_h245_ipv6_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
|
||||
{ &hf_h245_ip6_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_ip6_network },
|
||||
{ &hf_h245_ipv6_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_ipv6_tsapIdentifier },
|
||||
{ NULL, 0, 0, NULL }
|
||||
};
|
||||
|
||||
|
@ -8283,13 +8322,13 @@ dissect_h245_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
|
||||
static int
|
||||
dissect_h245_T_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 875 "../../asn1/h245/h245.cnf"
|
||||
#line 896 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
|
||||
|
||||
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
|
||||
|
||||
#line 879 "../../asn1/h245/h245.cnf"
|
||||
#line 900 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = NULL;
|
||||
|
||||
|
@ -8300,13 +8339,13 @@ dissect_h245_T_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
|
|||
|
||||
static int
|
||||
dissect_h245_T_mediaControlChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 893 "../../asn1/h245/h245.cnf"
|
||||
#line 914 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
|
||||
|
||||
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
|
||||
|
||||
#line 897 "../../asn1/h245/h245.cnf"
|
||||
#line 918 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = NULL;
|
||||
|
||||
|
@ -10976,13 +11015,13 @@ dissect_h245_OLC_ack_reverseLogicalChannelParameters(tvbuff_t *tvb _U_, int offs
|
|||
|
||||
static int
|
||||
dissect_h245_Ack_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 866 "../../asn1/h245/h245.cnf"
|
||||
#line 887 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
|
||||
|
||||
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
|
||||
|
||||
#line 870 "../../asn1/h245/h245.cnf"
|
||||
#line 891 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = NULL;
|
||||
|
||||
|
@ -10993,13 +11032,13 @@ dissect_h245_Ack_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act
|
|||
|
||||
static int
|
||||
dissect_h245_Ack_mediaControlChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 884 "../../asn1/h245/h245.cnf"
|
||||
#line 905 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
|
||||
|
||||
offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
|
||||
|
||||
#line 888 "../../asn1/h245/h245.cnf"
|
||||
#line 909 "../../asn1/h245/h245.cnf"
|
||||
if (upcoming_channel)
|
||||
upcoming_channel->upcoming_addr = NULL;
|
||||
|
||||
|
@ -14235,7 +14274,7 @@ dissect_h245_FunctionNotSupportedCause(tvbuff_t *tvb _U_, int offset _U_, asn1_c
|
|||
|
||||
static int
|
||||
dissect_h245_T_returnedFunction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
|
||||
#line 969 "../../asn1/h245/h245.cnf"
|
||||
#line 990 "../../asn1/h245/h245.cnf"
|
||||
tvbuff_t *next_tvb = NULL;
|
||||
proto_item *item;
|
||||
proto_tree *subtree;
|
||||
|
@ -18088,11 +18127,11 @@ void proto_register_h245(void) {
|
|||
{ &hf_h245_ip6_network,
|
||||
{ "network", "h245.network",
|
||||
FT_IPv6, BASE_NONE, NULL, 0,
|
||||
"OCTET_STRING_SIZE_16", HFILL }},
|
||||
"T_ip6_network", HFILL }},
|
||||
{ &hf_h245_ipv6_tsapIdentifier,
|
||||
{ "tsapIdentifier", "h245.tsapIdentifier",
|
||||
FT_UINT32, BASE_DEC, NULL, 0,
|
||||
"INTEGER_0_65535", HFILL }},
|
||||
"T_ipv6_tsapIdentifier", HFILL }},
|
||||
{ &hf_h245_netBios,
|
||||
{ "netBios", "h245.netBios",
|
||||
FT_BYTES, BASE_NONE, NULL, 0,
|
||||
|
|
Loading…
Reference in New Issue