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:
Michal Pazdera 2015-10-05 12:25:05 +02:00 committed by Anders Broman
parent c00420efa2
commit 0eeeab7c5e
5 changed files with 223 additions and 107 deletions

View File

@ -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

View File

@ -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);

View File

@ -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) {

View File

@ -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,

View File

@ -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,