aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-bacapp.c
diff options
context:
space:
mode:
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2009-11-08 21:49:55 +0000
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>2009-11-08 21:49:55 +0000
commit00493efa30267a8e07d285acef210ce77dffd645 (patch)
tree643cff468478f36cbb8bda5b4b8264f87692f7ce /epan/dissectors/packet-bacapp.c
parentda2ba46d6ac7e636733aa1277539d332efa1091b (diff)
From Steve Karg and Herbert Lischka via bug 4190:
Modified the open/close context tagging to include context tag number. Modified the info column to show more specific information about certain packets. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@30869 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-bacapp.c')
-rw-r--r--epan/dissectors/packet-bacapp.c648
1 files changed, 340 insertions, 308 deletions
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c
index 35c384761e..b5c3be87c9 100644
--- a/epan/dissectors/packet-bacapp.c
+++ b/epan/dissectors/packet-bacapp.c
@@ -49,7 +49,7 @@ static GHashTable *msg_reassembled_table = NULL;
/* some necessary forward function prototypes */
static guint
-fApplicationTypesEnumerated (tvbuff_t *tvb, proto_tree *tree, guint offset,
+fApplicationTypesEnumerated (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset,
const gchar *label, const value_string *vs);
static const char *bacapp_unknown_service_str = "unknown service";
@@ -58,14 +58,14 @@ static const char *Vendor_Proprietary_Fmt = "(%d) Vendor Proprietary Value";
static const value_string
BACnetTypeName[] = {
- {0, "Confirmed-Request "},
- {1, "Unconfirmed-Request "},
- {2, "SimpleACK "},
- {3, "ComplexACK "},
- {4, "SegmentACK "},
- {5, "Error "},
- {6, "Reject "},
- {7, "Abort "},
+ {0, "Confirmed-REQ "},
+ {1, "Unconfirmed-REQ "},
+ {2, "Simple-ACK "},
+ {3, "Complex-ACK "},
+ {4, "Segment-ACK "},
+ {5, "Error "},
+ {6, "Reject "},
+ {7, "Abort "},
{0, NULL }
};
@@ -103,9 +103,6 @@ BACnetMaxSegmentsAccepted [] = {
{0,NULL }
};
-/* if BACnet uses the reserved values, then patch the corresponding values here */
-static const guint MaxAPDUSize [] = { 50,128,206,480,1024,1476,50,50,50,50,50,50,50,50,50,50 };
-
static const value_string
BACnetMaxAPDULengthAccepted [] = {
{0,"Up to MinimumMessageSize (50 octets)"},
@@ -395,37 +392,37 @@ BACnetUnconfirmedServiceRequest [] = {
static const value_string
BACnetObjectType [] = {
- {0,"analog-input object"},
- {1,"analog-output object"},
- {2,"analog-value object"},
- {3,"binary-input object"},
- {4,"binary-output object"},
- {5,"binary-value object"},
- {6,"calendar object"},
- {7,"command object"},
- {8,"device object"},
- {9,"event-enrollment object"},
- {10,"file object"},
- {11,"group object"},
- {12,"loop object"},
- {13,"multi-state-input object"},
- {14,"multi-state-output object"},
- {15,"notification-class object"},
- {16,"program object"},
- {17,"schedule object"},
- {18,"averaging object"},
- {19,"multi-state-value object"},
- {20,"trend-log object"},
- {21,"life-safety-point object"},
- {22,"life-safety-zone object"},
- {23,"accumulator object"},
- {24,"pulse-converter object"},
- {25,"event-log object"},
- {26,"global-group object"},
- {27,"trend-log-multiple object"},
- {28,"load-control object"},
- {29,"structured-view object"},
- {30,"access-door object"},
+ {0,"analog-input"},
+ {1,"analog-output"},
+ {2,"analog-value"},
+ {3,"binary-input"},
+ {4,"binary-output"},
+ {5,"binary-value"},
+ {6,"calendar"},
+ {7,"command"},
+ {8,"device"},
+ {9,"event-enrollment"},
+ {10,"file"},
+ {11,"group"},
+ {12,"loop"},
+ {13,"multi-state-input"},
+ {14,"multi-state-output"},
+ {15,"notification-class"},
+ {16,"program"},
+ {17,"schedule"},
+ {18,"averaging"},
+ {19,"multi-state-value"},
+ {20,"trend-log"},
+ {21,"life-safety-point"},
+ {22,"life-safety-zone"},
+ {23,"accumulator"},
+ {24,"pulse-converter"},
+ {25,"event-log"},
+ {26,"global-group"},
+ {27,"trend-log-multiple"},
+ {28,"load-control"},
+ {29,"structured-view"},
+ {30,"access-door"},
{0, NULL}
/* Enumerated values 0-127 are reserved for definition by ASHRAE.
Enumerated values 128-1023 may be used by others subject to
@@ -866,7 +863,7 @@ BACnetPropertyIdentifier [] = {
{170,"manual-slave-address-binding"},
{171,"slave-address-binding"},
{172,"slave-proxy-enable"},
- {173,"last-notify-time"},
+ {173,"last-notify-record"}, /* bug 4117 */
{174,"schedule-default"},
{175,"accepted-modes"},
{176,"adjust-value"},
@@ -1776,6 +1773,22 @@ static const fragment_items msg_frag_items = {
/* Tag */
"Message fragments"
};
+
+/* if BACnet uses the reserved values, then patch the corresponding values here, maximum 16 values are defined */
+static const guint MaxAPDUSize [] = { 50,128,206,480,1024,1476 };
+
+static guint
+fGetMaxAPDUSize(guint8 index)
+{
+ /* only 16 values are defined, so use & 0x0f */
+ /* check the size of the Array, deliver either the entry
+ or the first entry if index is outside of the array (bug 3736 comment#7) */
+ if ((index & 0x0f) >= (sizeof(MaxAPDUSize)/sizeof(guint)))
+ return MaxAPDUSize[0];
+ else
+ return MaxAPDUSize[index & 0x0f];
+}
+
/* Used when there are ranges of reserved and proprietary enumerations */
static const char*
val_to_split_str(guint32 val, guint32 split_val, const value_string *vs,
@@ -1952,9 +1965,9 @@ fTagHeaderTree (tvbuff_t *tvb, proto_tree *tree, guint offset,
if (tree)
{
if (tag_is_opening(tag))
- ti = proto_tree_add_text(tree, tvb, offset, tag_len, "{" );
+ ti = proto_tree_add_text(tree, tvb, offset, tag_len, "{[%u]", *tag_no );
else if (tag_is_closing(tag))
- ti = proto_tree_add_text(tree, tvb, offset, tag_len, "}" );
+ ti = proto_tree_add_text(tree, tvb, offset, tag_len, "}[%u]", *tag_no );
/* this is mostly too much information
if (tag_is_closing(tag) || tag_is_opening(tag))
ti = proto_tree_add_text(tree, tvb, offset, tag_len,
@@ -2348,7 +2361,7 @@ fDateTime (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
}
static guint
-fTimeValue (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fTimeValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -2361,7 +2374,7 @@ fTimeValue (tvbuff_t *tvb, proto_tree *tree, guint offset)
return offset;
}
offset = fTime (tvb,tree,offset,"Time: ");
- offset = fApplicationTypes(tvb, tree, offset, "Value: ");
+ offset = fApplicationTypes(tvb, pinfo, tree, offset, "Value: ");
}
return offset;
}
@@ -2430,7 +2443,7 @@ fSetpointReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb, offset)) {
case 0: /* setpointReference */
- offset = fBACnetObjectPropertyReference (tvb,tree,offset);
+ offset = fBACnetObjectPropertyReference (tvb,pinfo,tree,offset);
break;
default:
return offset;
@@ -2446,7 +2459,7 @@ static guint
fClientCOV (tvbuff_t *tvb, proto_tree *tree, guint offset)
{
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- offset = fApplicationTypes(tvb,tree,offset, "increment: ");
+ offset = fApplicationTypes(tvb,pinfo,tree,offset, "increment: ");
}
return offset;
}
@@ -2467,13 +2480,13 @@ static guint
fDestination (tvbuff_t *tvb, proto_tree *tree, guint offset)
{
if (tvb_reported_length_remaining(tvb, offset) > 0) {
- offset = fApplicationTypesEnumerated(tvb,tree,offset,
+ offset = fApplicationTypesEnumerated(tvb,pinfo,tree,offset,
"valid Days: ", BACnetDaysOfWeek);
offset = fTime (tvb,tree,offset,"from time: ");
offset = fTime (tvb,tree,offset,"to time: ");
- offset = fRecipient (tvb,tree,offset);
+ offset = fRecipient (tvb,pinfo,tree,offset);
offset = fProcessId (tvb,tree,offset);
- offset = fApplicationTypes (tvb,tree,offset,
+ offset = fApplicationTypes (tvb,pinfo,tree,offset,
"issue confirmed notifications: ");
offset = fBitStringTagVS (tvb,tree,offset,
"transitions: ", BACnetEventTransitionBits);
@@ -2535,7 +2548,7 @@ fSessionKey (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fObjectIdentifier (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fObjectIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -2555,6 +2568,15 @@ fObjectIdentifier (tvbuff_t *tvb, proto_tree *tree, guint offset)
ASHRAE_Reserved_Fmt,
Vendor_Proprietary_Fmt),
object_id_instance(object_id));
+ if (col_get_writable(pinfo->cinfo))
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s,%u ",
+ val_to_split_str(object_type,
+ 128,
+ BACnetObjectType,
+ ASHRAE_Reserved_Fmt,
+ Vendor_Proprietary_Fmt),
+ object_id_instance(object_id));
+
/* here are the details of how we arrived at the above text */
subtree = proto_item_add_subtree(ti, ett_bacapp_tag);
fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
@@ -2567,7 +2589,7 @@ fObjectIdentifier (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fRecipient (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fRecipient (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -2575,7 +2597,7 @@ fRecipient (tvbuff_t *tvb, proto_tree *tree, guint offset)
fTagHeader(tvb, offset, &tag_no, &tag_info, &lvt);
if (tag_no < 2) {
if (tag_no == 0) { /* device */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
}
else { /* address */
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
@@ -2587,7 +2609,7 @@ fRecipient (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fRecipientProcess (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fRecipientProcess (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -2599,7 +2621,7 @@ fRecipientProcess (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb, offset)) {
case 0: /* recipient */
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fRecipient (tvb, tree, offset);
+ offset = fRecipient (tvb, pinfo, tree, offset);
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* processId */
@@ -2614,9 +2636,9 @@ fRecipientProcess (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fAddressBinding (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAddressBinding (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
return fAddress (tvb, tree, offset);
}
@@ -2645,13 +2667,13 @@ fActionCommand (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
switch (tag_no) {
case 0: /* deviceIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 1: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyIdentifier */
- offset = fPropertyIdentifier (tvb, subtree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 3: /* propertyArrayIndex */
offset = fPropertyArrayIndex (tvb, subtree, offset);
@@ -2720,7 +2742,7 @@ fActionList (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
}
static guint
-fPropertyIdentifier (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fPropertyIdentifier (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -2739,6 +2761,12 @@ fPropertyIdentifier (tvbuff_t *tvb, proto_tree *tree, guint offset)
BACnetPropertyIdentifier,
ASHRAE_Reserved_Fmt,
Vendor_Proprietary_Fmt), propertyIdentifier);
+ if (col_get_writable(pinfo->cinfo))
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_split_str(propertyIdentifier, 512,
+ BACnetPropertyIdentifier,
+ ASHRAE_Reserved_Fmt,
+ Vendor_Proprietary_Fmt));
} else {
/* property identifiers cannot be larger than 22-bits */
return offset;
@@ -2940,7 +2968,7 @@ fBitStringTag (tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label
/* handles generic application types, as well as enumerated and enumerations
with reserved and proprietarty ranges (split) */
static guint
-fApplicationTypesEnumeratedSplit (tvbuff_t *tvb, proto_tree *tree, guint offset,
+fApplicationTypesEnumeratedSplit (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset,
const gchar *label, const value_string *src, guint32 split_val)
{
guint8 tag_no, tag_info;
@@ -2990,7 +3018,7 @@ fApplicationTypesEnumeratedSplit (tvbuff_t *tvb, proto_tree *tree, guint offset,
offset = fTime (tvb, tree, offset, label);
break;
case 12: /** BACnetObjectIdentifier 20.2.14 */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 13: /* reserved for ASHRAE */
case 14:
@@ -3033,17 +3061,17 @@ fShedLevel (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fApplicationTypesEnumerated (tvbuff_t *tvb, proto_tree *tree, guint offset,
+fApplicationTypesEnumerated (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset,
const gchar *label, const value_string *vs)
{
- return fApplicationTypesEnumeratedSplit(tvb, tree, offset, label, vs, 0);
+ return fApplicationTypesEnumeratedSplit(tvb, pinfo, tree, offset, label, vs, 0);
}
static guint
-fApplicationTypes (tvbuff_t *tvb, proto_tree *tree, guint offset,
+fApplicationTypes (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset,
const gchar *label)
{
- return fApplicationTypesEnumeratedSplit(tvb, tree, offset, label, NULL, 0);
+ return fApplicationTypesEnumeratedSplit(tvb, pinfo, tree, offset, label, NULL, 0);
}
static guint
@@ -3110,51 +3138,51 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
offset = fActionList (tvb, pinfo, tree,offset);
} else {
/* BACnetAction */
- offset = fApplicationTypesEnumerated (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset, ar,
BACnetAction);
}
break;
case 30: /* BACnetAddressBinding */
- offset = fAddressBinding (tvb,tree,offset);
+ offset = fAddressBinding (tvb,pinfo,tree,offset);
break;
case 54: /* list of object property reference */
- offset = fLOPR (tvb,tree,offset);
+ offset = fLOPR (tvb, pinfo, tree,offset);
break;
case 55: /* list-of-session-keys */
fSessionKey (tvb, tree, offset);
break;
case 79: /* object-type */
case 96: /* protocol-object-types-supported */
- offset = fApplicationTypesEnumeratedSplit (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumeratedSplit (tvb, pinfo, tree, offset, ar,
BACnetObjectType, 128);
break;
case 97: /* Protocol-Services-Supported */
- offset = fApplicationTypesEnumerated (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset, ar,
BACnetServicesSupported);
break;
case 107: /* segmentation-supported */
- offset = fApplicationTypesEnumerated (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset, ar,
BACnetSegmentation);
break;
case 111: /* Status-Flags */
- offset = fApplicationTypesEnumerated (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset, ar,
BACnetStatusFlags);
break;
case 112: /* System-Status */
- offset = fApplicationTypesEnumerated (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset, ar,
BACnetDeviceStatus);
break;
case 117: /* units */
- offset = fApplicationTypesEnumerated (tvb, tree, offset, ar,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset, ar,
BACnetEngineeringUnits);
break;
case 87: /* priority-array -- accessed as a BACnetARRAY */
if (propertyArrayIndex == 0) {
/* BACnetARRAY index 0 refers to the length
of the array, not the elements of the array */
- offset = fApplicationTypes (tvb, tree, offset, ar);
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, ar);
} else {
- offset = fPriorityArray (tvb, tree, offset);
+ offset = fPriorityArray (tvb, pinfo, tree, offset);
}
break;
case 38: /* exception-schedule */
@@ -3163,9 +3191,9 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
if (propertyArrayIndex == 0) {
/* BACnetARRAY index 0 refers to the length
of the array, not the elements of the array */
- offset = fApplicationTypes (tvb, tree, offset, ar);
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, ar);
} else {
- offset = fSpecialEvent (tvb,tree,offset);
+ offset = fSpecialEvent (tvb,pinfo,tree,offset);
}
}
break;
@@ -3173,7 +3201,7 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
case 60: /* manipulated-variable-reference */
case 109: /* setpoint-reference */
case 132: /* log-device-object-property */
- offset = fDeviceObjectPropertyReference (tvb, tree, offset);
+ offset = fDeviceObjectPropertyReference (tvb, pinfo, tree, offset);
break;
case 123: /* weekly-schedule -- accessed as a BACnetARRAY */
if (object_type < 128)
@@ -3181,9 +3209,9 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
if (propertyArrayIndex == 0) {
/* BACnetARRAY index 0 refers to the length
of the array, not the elements of the array */
- offset = fApplicationTypes (tvb, tree, offset, ar);
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, ar);
} else {
- offset = fWeeklySchedule (tvb,tree,offset);
+ offset = fWeeklySchedule (tvb, pinfo, tree, offset);
}
}
break;
@@ -3192,7 +3220,7 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
break;
case 159: /* member-of */
case 165: /* zone-members */
- offset = fDeviceObjectReference (tvb, tree, offset);
+ offset = fDeviceObjectReference (tvb, pinfo, tree, offset);
break;
case 196: /* last-restart-reason */
offset = fRestartReason (tvb, pinfo, tree, offset);
@@ -3222,7 +3250,7 @@ fAbstractSyntaxNType (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
}
else
{
- offset = fApplicationTypes (tvb, tree, offset, ar);
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, ar);
}
break;
}
@@ -3262,7 +3290,7 @@ fPropertyIdentifierValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
guint8 tag_no, tag_info;
guint32 lvt;
- offset = fPropertyReference(tvb, tree, offset, tagoffset, 0);
+ offset = fPropertyReference(tvb, pinfo, tree, offset, tagoffset, 0);
if (offset > lastoffset)
{
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
@@ -3296,7 +3324,7 @@ fBACnetPropertyValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
}
static guint
-fSubscribeCOVPropertyRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fSubscribeCOVPropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -3318,7 +3346,7 @@ fSubscribeCOVPropertyRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
offset = fUnsignedTag (tvb, tree, offset, "subscriber Process Id: ");
break;
case 1: /* monitored ObjectId */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* issueConfirmedNotifications */
offset = fBooleanTag (tvb, tree, offset, "issue Confirmed Notifications: ");
@@ -3333,7 +3361,7 @@ fSubscribeCOVPropertyRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
}
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fBACnetPropertyReference (tvb, subtree, offset, 1);
+ offset = fBACnetPropertyReference (tvb, pinfo, subtree, offset, 1);
break;
}
FAULT;
@@ -3349,13 +3377,13 @@ fSubscribeCOVPropertyRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fSubscribeCOVRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fSubscribeCOVRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fSubscribeCOVPropertyRequest(tvb, tree, offset);
+ return fSubscribeCOVPropertyRequest(tvb, pinfo, tree, offset);
}
static guint
-fWhoHas (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fWhoHas (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -3370,7 +3398,7 @@ fWhoHas (tvbuff_t *tvb, proto_tree *tree, guint offset)
offset = fUnsignedTag (tvb, tree, offset, "device Instance High Limit: ");
break;
case 2: /* BACnetObjectId */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 3: /* messageText */
offset = fCharacterString (tvb,tree,offset, "Object Name: ");
@@ -3384,7 +3412,7 @@ fWhoHas (tvbuff_t *tvb, proto_tree *tree, guint offset)
static guint
-fDailySchedule (tvbuff_t *tvb, proto_tree *subtree, guint offset)
+fDailySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -3403,7 +3431,7 @@ fDailySchedule (tvbuff_t *tvb, proto_tree *subtree, guint offset)
return offset;
}
- offset = fTimeValue (tvb, subtree, offset);
+ offset = fTimeValue (tvb, pinfo, subtree, offset);
}
}
else if (tag_no == 0 && lvt == 0)
@@ -3415,7 +3443,7 @@ fDailySchedule (tvbuff_t *tvb, proto_tree *subtree, guint offset)
}
static guint
-fWeeklySchedule (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fWeeklySchedule (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -3442,7 +3470,7 @@ fWeeklySchedule (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
tt = proto_tree_add_text(tree, tvb, offset, 0, "%s", val_to_str(i++, day_of_week, "day of week (%d) not found"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
- offset = fDailySchedule (tvb,subtree,offset);
+ offset = fDailySchedule (tvb, pinfo, subtree, offset);
}
return offset;
}
@@ -3548,7 +3576,7 @@ fRestartReason (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offse
}
static guint
-fConfirmedTextMessageRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fConfirmedTextMessageRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -3557,7 +3585,7 @@ fConfirmedTextMessageRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb, offset)) {
case 0: /* textMessageSourceDevice */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* messageClass */
switch (fTagNo(tvb, offset)) {
@@ -3584,9 +3612,9 @@ fConfirmedTextMessageRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fUnconfirmedTextMessageRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fUnconfirmedTextMessageRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fConfirmedTextMessageRequest(tvb, tree, offset);
+ return fConfirmedTextMessageRequest(tvb, pinfo, tree, offset);
}
static guint
@@ -3653,7 +3681,7 @@ fConfirmedPrivateTransferAck(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static guint
-fLifeSafetyOperationRequest(tvbuff_t *tvb, proto_tree *tree, guint offset, const gchar *label)
+fLifeSafetyOperationRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, const gchar *label)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -3682,7 +3710,7 @@ fLifeSafetyOperationRequest(tvbuff_t *tvb, proto_tree *tree, guint offset, const
"request: ", BACnetLifeSafetyOperation, 64);
break;
case 3: /* objectId */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
default:
return offset;
@@ -3781,13 +3809,13 @@ fDeviceObjectPropertyValue (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
switch (tag_no) {
case 0: /* deviceIdentifier */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* propertyIdentifier */
- offset = fPropertyIdentifier (tvb, tree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 3: /* arrayIndex - OPTIONAL */
offset = fUnsignedTag (tvb, tree, offset,
@@ -3817,7 +3845,7 @@ BACnetDeviceObjectPropertyReference ::= SEQUENCE {
}
*/
static guint
-fDeviceObjectPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fDeviceObjectPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -3832,17 +3860,17 @@ fDeviceObjectPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
switch (tag_no) {
case 0: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* propertyIdentifier */
- offset = fPropertyIdentifier (tvb, tree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* arrayIndex - OPTIONAL */
offset = fUnsignedTag (tvb, tree, offset,
"arrayIndex: ");
break;
case 3: /* deviceIdentifier - OPTIONAL */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
default:
return offset;
@@ -4015,10 +4043,10 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0:
- offset = fObjectIdentifier (tvb, subtree, offset); /* buffer-device */
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset); /* buffer-device */
break;
case 1:
- offset = fObjectIdentifier (tvb, subtree, offset); /* buffer-object */
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset); /* buffer-object */
break;
case 2:
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
@@ -4073,7 +4101,7 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
break;
case 2: /* parameters */
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fApplicationTypes(tvb, subtree, offset, "parameters: ");
+ offset = fApplicationTypes(tvb, pinfo, subtree, offset, "parameters: ");
offset = fDeviceObjectPropertyValue(tvb, pinfo, subtree, offset);
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
break;
@@ -4088,7 +4116,7 @@ fNotificationParameters (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gu
switch (fTagNo(tvb, offset)) {
case 0: /* buffer-property */
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fDeviceObjectPropertyReference (tvb, subtree, offset);
+ offset = fDeviceObjectPropertyReference (tvb, pinfo, subtree, offset);
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
break;
case 1:
@@ -4211,7 +4239,7 @@ fEventParameter (tvbuff_t *tvb, proto_tree *tree, guint offset)
offset = fTimeSpan (tvb, tree, offset, "Time Delay");
break;
case 1:
- offset = fDeviceObjectPropertyReference (tvb,tree,offset);
+ offset = fDeviceObjectPropertyReference (tvb,pinfo,tree,offset);
default:
return offset;
}
@@ -4225,7 +4253,7 @@ fEventParameter (tvbuff_t *tvb, proto_tree *tree, guint offset)
offset = fTimeSpan (tvb, tree, offset, "Time Delay");
break;
case 1:
- offset = fDeviceObjectPropertyReference (tvb,tree,offset);
+ offset = fDeviceObjectPropertyReference (tvb,pinfo,tree,offset);
break;
case 2:
offset = fRealTag (tvb, tree, offset, "low diff limit: ");
@@ -4297,7 +4325,7 @@ fEventParameter (tvbuff_t *tvb, proto_tree *tree, guint offset)
"alarm value: ", BACnetLifeSafetyState, 256);
break;
case 3:
- offset = fDeviceObjectPropertyReference (tvb, tree, offset);
+ offset = fDeviceObjectPropertyReference (tvb, pinfo, tree, offset);
break;
default:
return offset;
@@ -4357,7 +4385,7 @@ fLogRecord (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
offset = fNullTag(tvb, tree, offset, "null value: ");
break;
case 8:
- offset = fError (tvb,tree,offset);
+ offset = fError (tvb, pinfo, tree, offset);
break;
case 9:
offset = fRealTag (tvb, tree, offset, "time change: ");
@@ -4399,10 +4427,10 @@ fConfirmedEventNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tre
offset = fProcessId (tvb,tree,offset);
break;
case 1: /* initiating ObjectId */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* event ObjectId */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 3: /* time stamp */
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
@@ -4480,10 +4508,10 @@ fConfirmedCOVNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree
offset = fProcessId (tvb,tree,offset);
break;
case 1: /* initiating DeviceId */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* monitored ObjectId */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 3: /* time remaining */
offset = fTimeSpan (tvb, tree, offset, "Time remaining");
@@ -4512,7 +4540,7 @@ fUnconfirmedCOVNotificationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tre
}
static guint
-fAcknowledgeAlarmRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAcknowledgeAlarmRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no = 0, tag_info = 0;
@@ -4525,7 +4553,7 @@ fAcknowledgeAlarmRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
offset = fUnsignedTag (tvb, tree, offset, "acknowledging Process Id: ");
break;
case 1: /* eventObjectId */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 2: /* eventStateAcknowledged */
offset = fEnumeratedTagSplit (tvb, tree, offset,
@@ -4552,23 +4580,23 @@ fAcknowledgeAlarmRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fGetAlarmSummaryAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fGetAlarmSummaryAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- offset = fApplicationTypes (tvb, tree, offset, "Object Identifier: ");
- offset = fApplicationTypesEnumeratedSplit (tvb, tree, offset,
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Object Identifier: ");
+ offset = fApplicationTypesEnumeratedSplit (tvb, pinfo, tree, offset,
"alarm State: ", BACnetEventState, 64);
- offset = fApplicationTypesEnumerated (tvb, tree, offset,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset,
"acknowledged Transitions: ", BACnetEventTransitionBits);
}
return offset;
}
static guint
-fGetEnrollmentSummaryRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fGetEnrollmentSummaryRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -4583,7 +4611,7 @@ fGetEnrollmentSummaryRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
break;
case 1: /* eventObjectId - OPTIONAL */
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fRecipientProcess (tvb, tree, offset);
+ offset = fRecipientProcess (tvb, pinfo, tree, offset);
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 2: /* eventStateFilter */
@@ -4611,37 +4639,37 @@ fGetEnrollmentSummaryRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fGetEnrollmentSummaryAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fGetEnrollmentSummaryAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- offset = fApplicationTypes (tvb, tree, offset, "Object Identifier: ");
- offset = fApplicationTypesEnumeratedSplit (tvb, tree, offset,
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Object Identifier: ");
+ offset = fApplicationTypesEnumeratedSplit (tvb, pinfo, tree, offset,
"event Type: ", BACnetEventType, 64);
- offset = fApplicationTypesEnumerated (tvb, tree, offset,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset,
"event State: ", BACnetEventState);
- offset = fApplicationTypes (tvb, tree, offset, "Priority: ");
- offset = fApplicationTypes (tvb, tree, offset, "Notification Class: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Priority: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Notification Class: ");
}
return offset;
}
static guint
-fGetEventInformationRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fGetEventInformationRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
if (tvb_reported_length_remaining(tvb, offset) > 0) {
if (fTagNo(tvb, offset) == 0) {
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
}
}
return offset;
}
static guint
-flistOfEventSummaries (tvbuff_t *tvb, proto_tree *tree, guint offset)
+flistOfEventSummaries (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -4658,7 +4686,7 @@ flistOfEventSummaries (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
switch (tag_no) {
case 0: /* ObjectId */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* eventState */
offset = fEnumeratedTag (tvb, tree, offset,
@@ -4706,12 +4734,13 @@ flistOfEventSummaries (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fLOPR (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fLOPR (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
guint32 lvt;
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
@@ -4719,13 +4748,13 @@ fLOPR (tvbuff_t *tvb, proto_tree *tree, guint offset)
if (tag_is_closing(tag_info)) {
break;
}
- offset = fDeviceObjectPropertyReference(tvb, tree, offset);
+ offset = fDeviceObjectPropertyReference(tvb, pinfo, tree, offset);
}
return offset;
}
static guint
-fGetEventInformationACK (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fGetEventInformationACK (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -4736,7 +4765,7 @@ fGetEventInformationACK (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb, offset)) {
case 0: /* listOfEventSummaries */
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = flistOfEventSummaries (tvb, tree, offset);
+ offset = flistOfEventSummaries (tvb, pinfo, tree, offset);
offset += fTagHeaderTree (tvb, tree, offset, &tag_no, &tag_info, &lvt);
break;
case 1: /* moreEvents */
@@ -4758,6 +4787,8 @@ fAddListElementRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
proto_tree *subtree = tree;
proto_item *tt;
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
+
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
@@ -4770,7 +4801,7 @@ fAddListElementRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
switch (tag_no) {
case 0: /* ObjectId */
- offset = fBACnetObjectPropertyReference (tvb, subtree, offset);
+ offset = fBACnetObjectPropertyReference (tvb, pinfo, subtree, offset);
break;
case 3: /* listOfElements */
if (tag_is_opening(tag_info)) {
@@ -4790,9 +4821,9 @@ fAddListElementRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guin
}
static guint
-fDeleteObjectRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fDeleteObjectRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fObjectIdentifier (tvb, tree, offset);
+ return fObjectIdentifier (tvb, pinfo, tree, offset);
}
static guint
@@ -4846,37 +4877,37 @@ fReinitializeDeviceRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fVtOpenRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fVtOpenRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fApplicationTypesEnumerated (tvb, tree, offset,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset,
"vtClass: ", BACnetVTClass);
- return fApplicationTypes (tvb,tree,offset,"local VT Session ID: ");
+ return fApplicationTypes (tvb, pinfo, tree,offset,"local VT Session ID: ");
}
static guint
-fVtOpenAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fVtOpenAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fApplicationTypes (tvb,tree,offset,"remote VT Session ID: ");
+ return fApplicationTypes (tvb, pinfo, tree,offset,"remote VT Session ID: ");
}
static guint
-fVtCloseRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fVtCloseRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
- offset= fApplicationTypes (tvb,tree,offset,"remote VT Session ID: ");
+ offset= fApplicationTypes (tvb, pinfo, tree,offset,"remote VT Session ID: ");
}
return offset;
}
static guint
-fVtDataRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fVtDataRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset= fApplicationTypes (tvb,tree,offset,"VT Session ID: ");
- offset = fApplicationTypes (tvb, tree, offset, "VT New Data: ");
- return fApplicationTypes (tvb,tree,offset,"VT Data Flag: ");;
+ offset= fApplicationTypes (tvb, pinfo, tree,offset,"VT Session ID: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "VT New Data: ");
+ return fApplicationTypes (tvb, pinfo, tree,offset,"VT Data Flag: ");;
}
static guint
@@ -4933,17 +4964,17 @@ fAuthenticateRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fAuthenticateAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAuthenticateAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fApplicationTypes (tvb, tree, offset, "modified Random Number: ");
+ return fApplicationTypes (tvb, pinfo, tree, offset, "modified Random Number: ");
}
static guint
-fRequestKeyRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fRequestKeyRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fObjectIdentifier (tvb, tree, offset); /* Requesting Device Identifier */
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset); /* Requesting Device Identifier */
offset = fAddress (tvb, tree, offset);
- offset = fObjectIdentifier (tvb, tree, offset); /* Remote Device Identifier */
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset); /* Remote Device Identifier */
return fAddress (tvb, tree, offset);
}
@@ -4955,9 +4986,9 @@ fRemoveListElementRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
}
static guint
-fReadPropertyRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fReadPropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fBACnetObjectPropertyReference(tvb, tree, offset);
+ return fBACnetObjectPropertyReference(tvb, pinfo, tree, offset);
}
static guint
@@ -4981,10 +5012,10 @@ fReadPropertyAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint off
}
switch (tag_no) {
case 0: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 1: /* propertyIdentifier */
- offset = fPropertyIdentifier (tvb, subtree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyArrayIndex */
offset = fPropertyArrayIndex (tvb, subtree, offset);
@@ -5021,10 +5052,10 @@ fWritePropertyRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
switch (tag_no) {
case 0: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 1: /* propertyIdentifier */
- offset = fPropertyIdentifier (tvb, subtree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyArrayIndex */
offset = fPropertyArrayIndex (tvb, subtree, offset);
@@ -5060,7 +5091,7 @@ fWriteAccessSpecification (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtre
switch (tag_no) {
case 0: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 1: /* listOfPropertyValues */
if (tag_is_opening(tag_info)) {
@@ -5083,11 +5114,12 @@ fWritePropertyMultipleRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
if (offset >= tvb_reported_length(tvb))
return offset;
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
return fWriteAccessSpecification (tvb, pinfo, tree, offset);
}
static guint
-fPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset, guint8 tagoffset, guint8 list)
+fPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, guint8 tagoffset, guint8 list)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -5105,7 +5137,7 @@ fPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset, guint8 tagoff
}
switch (tag_no-tagoffset) {
case 0: /* PropertyIdentifier */
- offset = fPropertyIdentifier (tvb, tree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* propertyArrayIndex */
offset = fPropertyArrayIndex (tvb, tree, offset);
@@ -5119,13 +5151,14 @@ fPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset, guint8 tagoff
}
static guint
-fBACnetPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset, guint8 list)
+fBACnetPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset, guint8 list)
{
- return fPropertyReference(tvb, tree, offset, 0, list);
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
+ return fPropertyReference(tvb, pinfo, tree, offset, 0, list);
}
static guint
-fBACnetObjectPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fBACnetObjectPropertyReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -5134,10 +5167,11 @@ fBACnetObjectPropertyReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb,offset)) {
case 0: /* ObjectIdentifier */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* PropertyIdentifier and propertyArrayIndex */
- offset = fPropertyReference (tvb, tree, offset, 1, 0);
+ offset = fPropertyReference (tvb, pinfo, tree, offset, 1, 0);
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
default:
lastoffset = offset; /* Set loop end condition */
break;
@@ -5166,10 +5200,10 @@ fObjectPropertyValue (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
switch (tag_no) {
case 0: /* ObjectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 1: /* PropertyIdentifier */
- offset = fPropertyIdentifier (tvb, subtree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* propertyArrayIndex */
offset = fUnsignedTag (tvb, subtree, offset, "property Array Index: ");
@@ -5189,7 +5223,7 @@ fObjectPropertyValue (tvbuff_t *tvb, proto_tree *tree, guint offset)
#endif
static guint
-fPriorityArray (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fPriorityArray (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
char i = 1, ar[256];
guint lastoffset = 0;
@@ -5214,7 +5248,7 @@ fPriorityArray (tvbuff_t *tvb, proto_tree *tree, guint offset)
Vendor_Proprietary_Fmt),
i++);
/* DMR Should be fAbstractNSyntax, but that's where we came from! */
- offset = fApplicationTypes(tvb, tree, offset, ar);
+ offset = fApplicationTypes(tvb, pinfo, tree, offset, ar);
/* there are only 16 priority array elements */
if (i > 16) {
break;
@@ -5225,7 +5259,7 @@ fPriorityArray (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fDeviceObjectReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fDeviceObjectReference (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -5234,10 +5268,10 @@ fDeviceObjectReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (fTagNo(tvb,offset)) {
case 0: /* deviceIdentifier - OPTIONAL */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* ObjectIdentifier */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
default:
return offset;
@@ -5247,7 +5281,7 @@ fDeviceObjectReference (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fSpecialEvent (tvbuff_t *tvb, proto_tree *subtree, guint offset)
+fSpecialEvent (tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
@@ -5270,12 +5304,12 @@ fSpecialEvent (tvbuff_t *tvb, proto_tree *subtree, guint offset)
}
break;
case 1: /* calendarReference */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 2: /* list of BACnetTimeValue */
if (tag_is_opening(tag_info)) {
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fTimeValue (tvb, subtree, offset);
+ offset = fTimeValue (tvb, pinfo, subtree, offset);
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
break;
}
@@ -5307,7 +5341,7 @@ fSelectionCriteria (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint o
switch (fTagNo(tvb,offset)) {
case 0: /* propertyIdentifier */
- offset = fPropertyIdentifier (tvb, tree, offset);
+ offset = fPropertyIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* propertyArrayIndex */
offset = fPropertyArrayIndex (tvb, tree, offset);
@@ -5382,7 +5416,7 @@ fReadPropertyConditionalRequest(tvbuff_t *tvb, packet_info* pinfo, proto_tree *s
offset = fObjectSelectionCriteria (tvb, pinfo, subtree, offset);
break;
case 1: /* listOfPropertyReferences */
- offset = fBACnetPropertyReference (tvb, subtree, offset, 1);
+ offset = fBACnetPropertyReference (tvb, pinfo, subtree, offset, 1);
break;
default:
return offset;
@@ -5394,7 +5428,7 @@ fReadPropertyConditionalRequest(tvbuff_t *tvb, packet_info* pinfo, proto_tree *s
}
static guint
-fReadAccessSpecification (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fReadAccessSpecification (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no, tag_info;
@@ -5407,14 +5441,14 @@ fReadAccessSpecification (tvbuff_t *tvb, proto_tree *tree, guint offset)
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
case 1: /* listOfPropertyReferences */
if (tag_is_opening(tag_info)) {
tt = proto_tree_add_text(subtree, tvb, offset, 1, "listOfPropertyReferences");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
offset += fTagHeaderTree(tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fBACnetPropertyReference (tvb, subtree, offset, 1);
+ offset = fBACnetPropertyReference (tvb, pinfo, subtree, offset, 1);
} else if (tag_is_closing(tag_info)) {
offset += fTagHeaderTree (tvb, subtree, offset,
&tag_no, &tag_info, &lvt);
@@ -5453,7 +5487,7 @@ fReadAccessResult (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
switch (tag_no) {
case 0: /* objectSpecifier */
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
break;
case 1: /* list of Results */
if (tag_is_opening(tag_info)) {
@@ -5473,7 +5507,7 @@ fReadAccessResult (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint of
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
/* Error Code follows */
- offset = fError(tvb, subtree, offset);
+ offset = fError(tvb, pinfo, subtree, offset);
break;
}
FAULT;
@@ -5515,7 +5549,7 @@ fCreateObjectRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, gui
offset = fEnumeratedTagSplit (tvb, subtree, offset, "Object Type: ", BACnetObjectType, 128);
break;
case 1: /* objectIdentifier */
- offset = fObjectIdentifier (tvb, subtree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, subtree, offset);
break;
default:
break;
@@ -5538,20 +5572,20 @@ fCreateObjectRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, gui
}
static guint
-fCreateObjectAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fCreateObjectAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- return fObjectIdentifier (tvb, tree, offset);
+ return fObjectIdentifier (tvb, pinfo, tree, offset);
}
static guint
-fReadRangeRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fReadRangeRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
proto_tree *subtree = tree;
proto_item *tt;
- offset = fBACnetObjectPropertyReference(tvb, subtree, offset);
+ offset = fBACnetObjectPropertyReference(tvb, pinfo, subtree, offset);
if (tvb_reported_length_remaining(tvb, offset) > 0) {
/* optional range choice */
@@ -5563,13 +5597,13 @@ fReadRangeRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
switch (tag_no) {
case 3: /* range byPosition */
case 6: /* range bySequenceNumber, 2004 spec */
- offset = fApplicationTypes (tvb, subtree, offset, "reference Index: ");
- offset = fApplicationTypes (tvb, subtree, offset, "reference Count: ");
+ offset = fApplicationTypes (tvb, pinfo, subtree, offset, "reference Index: ");
+ offset = fApplicationTypes (tvb, pinfo, subtree, offset, "reference Count: ");
break;
case 4: /* range byTime - deprecated in 2004 */
case 7: /* 2004 spec */
offset = fDateTime(tvb, subtree, offset, "reference Date/Time: ");
- offset = fApplicationTypes (tvb, subtree, offset, "reference Count: ");
+ offset = fApplicationTypes (tvb, pinfo, subtree, offset, "reference Count: ");
break;
case 5: /* range timeRange - deprecated in 2004 */
offset = fDateTime(tvb, subtree, offset, "beginning Time: ");
@@ -5596,7 +5630,7 @@ fReadRangeAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset
propertyArrayIndex = -1;
/* objectIdentifier, propertyIdentifier, and
OPTIONAL propertyArrayIndex */
- offset = fBACnetObjectPropertyReference(tvb, subtree, offset);
+ offset = fBACnetObjectPropertyReference(tvb, pinfo, subtree, offset);
/* resultFlags => BACnetResultFlags ::= BIT STRING */
offset = fBitStringTagVS (tvb, tree, offset,
"resultFlags: ",
@@ -5606,6 +5640,7 @@ fReadRangeAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset
/* itemData */
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
if (tag_is_opening(tag_info)) {
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
tt = proto_tree_add_text(subtree, tvb, offset, 1, "itemData");
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
@@ -5620,7 +5655,7 @@ fReadRangeAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset
return offset;
}
-static guint fAccessMethod(tvbuff_t *tvb, proto_tree *tree, guint offset)
+static guint fAccessMethod(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint32 lvt;
@@ -5635,15 +5670,15 @@ static guint fAccessMethod(tvbuff_t *tvb, proto_tree *tree, guint offset)
tt = proto_tree_add_text(tree, tvb, offset, 1, "%s", val_to_str(tag_no, BACnetFileAccessOption, "invalid access method"));
subtree = proto_item_add_subtree(tt, ett_bacapp_value);
offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt);
- offset = fApplicationTypes (tvb, subtree, offset, val_to_str(tag_no, BACnetFileStartOption, "invalid option"));
- offset = fApplicationTypes (tvb, subtree, offset, val_to_str(tag_no, BACnetFileWriteInfo, "unknown option"));
+ offset = fApplicationTypes (tvb, pinfo, subtree, offset, val_to_str(tag_no, BACnetFileStartOption, "invalid option"));
+ offset = fApplicationTypes (tvb, pinfo, subtree, offset, val_to_str(tag_no, BACnetFileWriteInfo, "unknown option"));
if (tag_no == 1)
{
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset))
{ /* exit loop if nothing happens inside */
lastoffset = offset;
- offset = fApplicationTypes (tvb, subtree, offset, "Record Data: ");
+ offset = fApplicationTypes (tvb, pinfo, subtree, offset, "Record Data: ");
}
}
@@ -5660,14 +5695,14 @@ static guint fAccessMethod(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fAtomicReadFileRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAtomicReadFileRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no, tag_info;
guint32 lvt;
proto_tree *subtree = tree;
proto_item *tt;
- offset = fObjectIdentifier (tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset);
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
@@ -5684,11 +5719,11 @@ fAtomicReadFileRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fAtomicWriteFileRequest(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAtomicWriteFileRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fObjectIdentifier (tvb, tree, offset); /* file Identifier */
- offset = fAccessMethod(tvb, tree, offset);
+ offset = fObjectIdentifier (tvb, pinfo, tree, offset); /* file Identifier */
+ offset = fAccessMethod(tvb, pinfo, tree, offset);
return offset;
}
@@ -5701,23 +5736,25 @@ fAtomicWriteFileAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fAtomicReadFileAck (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fAtomicReadFileAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fApplicationTypes (tvb, tree, offset, "End Of File: ");
- offset = fAccessMethod(tvb, tree, offset);
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "End Of File: ");
+ offset = fAccessMethod(tvb,pinfo, tree, offset);
return offset;
}
static guint
-fReadPropertyMultipleRequest(tvbuff_t *tvb, proto_tree *subtree, guint offset)
+fReadPropertyMultipleRequest(tvbuff_t *tvb, packet_info *pinfo, proto_tree *subtree, guint offset)
{
- return fReadAccessSpecification (tvb,subtree,offset);
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
+ return fReadAccessSpecification (tvb,pinfo,subtree,offset);
}
static guint
fReadPropertyMultipleAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
return fReadAccessResult (tvb,pinfo,tree,offset);
}
@@ -5729,7 +5766,7 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
switch (service_choice) {
case 0: /* acknowledgeAlarm */
- offset = fAcknowledgeAlarmRequest (tvb, tree, offset);
+ offset = fAcknowledgeAlarmRequest (tvb, pinfo, tree, offset);
break;
case 1: /* confirmedCOVNotification */
offset = fConfirmedCOVNotificationRequest (tvb, pinfo, tree, offset);
@@ -5740,16 +5777,16 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
case 3: /* confirmedGetAlarmSummary conveys no parameters */
break;
case 4: /* getEnrollmentSummaryRequest */
- offset = fGetEnrollmentSummaryRequest (tvb, tree, offset);
+ offset = fGetEnrollmentSummaryRequest (tvb, pinfo, tree, offset);
break;
case 5: /* subscribeCOVRequest */
- offset = fSubscribeCOVRequest(tvb, tree, offset);
+ offset = fSubscribeCOVRequest(tvb, pinfo, tree, offset);
break;
case 6: /* atomicReadFile-Request */
- offset = fAtomicReadFileRequest(tvb, tree, offset);
+ offset = fAtomicReadFileRequest(tvb, pinfo, tree, offset);
break;
case 7: /* atomicWriteFile-Request */
- offset = fAtomicWriteFileRequest(tvb, tree, offset);
+ offset = fAtomicWriteFileRequest(tvb, pinfo, tree, offset);
break;
case 8: /* AddListElement-Request */
offset = fAddListElementRequest(tvb, pinfo, tree, offset);
@@ -5761,16 +5798,16 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
offset = fCreateObjectRequest(tvb, pinfo, tree, offset);
break;
case 11: /* deleteObject */
- offset = fDeleteObjectRequest(tvb, tree, offset);
+ offset = fDeleteObjectRequest(tvb, pinfo, tree, offset);
break;
case 12:
- offset = fReadPropertyRequest(tvb, tree, offset);
+ offset = fReadPropertyRequest(tvb, pinfo, tree, offset);
break;
case 13:
offset = fReadPropertyConditionalRequest(tvb, pinfo, tree, offset);
break;
case 14:
- offset = fReadPropertyMultipleRequest(tvb, tree, offset);
+ offset = fReadPropertyMultipleRequest(tvb, pinfo, tree, offset);
break;
case 15:
offset = fWritePropertyRequest(tvb, pinfo, tree, offset);
@@ -5785,37 +5822,37 @@ fConfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g
offset = fConfirmedPrivateTransferRequest(tvb, pinfo, tree, offset);
break;
case 19:
- offset = fConfirmedTextMessageRequest(tvb, tree, offset);
+ offset = fConfirmedTextMessageRequest(tvb, pinfo, tree, offset);
break;
case 20:
offset = fReinitializeDeviceRequest(tvb, tree, offset);
break;
case 21:
- offset = fVtOpenRequest(tvb, tree, offset);
+ offset = fVtOpenRequest(tvb, pinfo, tree, offset);
break;
case 22:
- offset = fVtCloseRequest (tvb, tree, offset);
+ offset = fVtCloseRequest (tvb, pinfo, tree, offset);
break;
case 23:
- offset = fVtDataRequest (tvb, tree, offset);
+ offset = fVtDataRequest (tvb, pinfo, tree, offset);
break;
case 24:
offset = fAuthenticateRequest (tvb, tree, offset);
break;
case 25:
- offset = fRequestKeyRequest (tvb, tree, offset);
+ offset = fRequestKeyRequest (tvb, pinfo, tree, offset);
break;
case 26:
- offset = fReadRangeRequest (tvb, tree, offset);
+ offset = fReadRangeRequest (tvb, pinfo, tree, offset);
break;
case 27:
- offset = fLifeSafetyOperationRequest(tvb, tree, offset, NULL);
+ offset = fLifeSafetyOperationRequest(tvb, pinfo, tree, offset, NULL);
break;
case 28:
- offset = fSubscribeCOVPropertyRequest(tvb, tree, offset);
+ offset = fSubscribeCOVPropertyRequest(tvb, pinfo, tree, offset);
break;
case 29:
- offset = fGetEventInformationRequest (tvb, tree, offset);
+ offset = fGetEventInformationRequest (tvb, pinfo, tree, offset);
break;
default:
return offset;
@@ -5831,19 +5868,19 @@ fConfirmedServiceAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
switch (service_choice) {
case 3: /* confirmedEventNotificationAck */
- offset = fGetAlarmSummaryAck (tvb, tree, offset);
+ offset = fGetAlarmSummaryAck (tvb, pinfo, tree, offset);
break;
case 4: /* getEnrollmentSummaryAck */
- offset = fGetEnrollmentSummaryAck (tvb, tree, offset);
+ offset = fGetEnrollmentSummaryAck (tvb, pinfo, tree, offset);
break;
case 6: /* atomicReadFile */
- offset = fAtomicReadFileAck (tvb, tree, offset);
+ offset = fAtomicReadFileAck (tvb, pinfo, tree, offset);
break;
case 7: /* atomicReadFileAck */
offset = fAtomicWriteFileAck (tvb, tree, offset);
break;
case 10: /* createObject */
- offset = fCreateObjectAck (tvb, tree, offset);
+ offset = fCreateObjectAck (tvb, pinfo, tree, offset);
break;
case 12:
offset = fReadPropertyAck (tvb, pinfo, tree, offset);
@@ -5858,19 +5895,19 @@ fConfirmedServiceAck (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint
offset = fConfirmedPrivateTransferAck(tvb, pinfo, tree, offset);
break;
case 21:
- offset = fVtOpenAck (tvb, tree, offset);
+ offset = fVtOpenAck (tvb, pinfo, tree, offset);
break;
case 23:
offset = fVtDataAck (tvb, tree, offset);
break;
case 24:
- offset = fAuthenticateAck (tvb, tree, offset);
+ offset = fAuthenticateAck (tvb, pinfo, tree, offset);
break;
case 26:
offset = fReadRangeAck (tvb, pinfo, tree, offset);
break;
case 29:
- offset = fGetEventInformationACK (tvb, tree, offset);
+ offset = fGetEventInformationACK (tvb, pinfo, tree, offset);
break;
default:
return offset;
@@ -5882,13 +5919,13 @@ static guint
fIAmRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
/* BACnetObjectIdentifier */
- offset = fApplicationTypes (tvb, tree, offset, "BACnet Object Identifier: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "BACnet Object Identifier: ");
/* MaxAPDULengthAccepted */
- offset = fApplicationTypes (tvb, tree, offset, "Maximum ADPU Length Accepted: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Maximum ADPU Length Accepted: ");
/* segmentationSupported */
- offset = fApplicationTypesEnumerated (tvb, tree, offset,
+ offset = fApplicationTypesEnumerated (tvb, pinfo, tree, offset,
"Segmentation Supported: ", BACnetSegmentation);
/* vendor ID */
@@ -5896,16 +5933,16 @@ fIAmRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
}
static guint
-fIHaveRequest (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fIHaveRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
/* BACnetDeviceIdentifier */
- offset = fApplicationTypes (tvb, tree, offset, "Device Identifier: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Device Identifier: ");
/* BACnetObjectIdentifier */
- offset = fApplicationTypes (tvb, tree, offset, "Object Identifier: ");
+ offset = fApplicationTypes (tvb, pinfo, tree, offset, "Object Identifier: ");
/* ObjectName */
- return fApplicationTypes (tvb, tree, offset, "Object Name: ");
+ return fApplicationTypes (tvb, pinfo, tree, offset, "Object Name: ");
}
@@ -5941,7 +5978,7 @@ fUnconfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
offset = fIAmRequest (tvb, pinfo, tree, offset);
break;
case 1: /* i-Have Request */
- offset = fIHaveRequest (tvb, tree, offset);
+ offset = fIHaveRequest (tvb, pinfo, tree, offset);
break;
case 2: /* unconfirmedCOVNotification */
offset = fUnconfirmedCOVNotificationRequest (tvb, pinfo, tree, offset);
@@ -5953,13 +5990,13 @@ fUnconfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
offset = fUnconfirmedPrivateTransferRequest(tvb, pinfo, tree, offset);
break;
case 5: /* unconfirmedTextMessage */
- offset = fUnconfirmedTextMessageRequest(tvb, tree, offset);
+ offset = fUnconfirmedTextMessageRequest(tvb, pinfo, tree, offset);
break;
case 6: /* timeSynchronization */
offset = fTimeSynchronizationRequest (tvb, tree, offset);
break;
case 7: /* who-Has */
- offset = fWhoHas (tvb, tree, offset);
+ offset = fWhoHas (tvb, pinfo, tree, offset);
break;
case 8: /* who-Is */
offset = fWhoIsRequest (tvb, tree, offset);
@@ -5974,7 +6011,7 @@ fUnconfirmedServiceRequest (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
}
static guint
-fStartConfirmed(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset, guint8 ack,
+fStartConfirmed(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *bacapp_tree, guint offset, guint8 ack,
gint *svc, proto_item **tt)
{
proto_item *tc;
@@ -6029,7 +6066,7 @@ fConfirmedRequestPDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bacapp_tree,
gint svc;
proto_item *tt = 0;
- offset = fStartConfirmed(tvb, bacapp_tree, offset, 0, &svc, &tt);
+ offset = fStartConfirmed(tvb, pinfo, bacapp_tree, offset, 0, &svc, &tt);
if (bacapp_seq > 0) /* Can't handle continuation segments, so just treat as data */
{
proto_tree_add_text(bacapp_tree, tvb, offset, 0, "(continuation)");
@@ -6059,7 +6096,7 @@ fUnconfirmedRequestPDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bacapp_tre
}
static guint
-fSimpleAckPDU(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset)
+fSimpleAckPDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *bacapp_tree, guint offset)
{ /* BACnet-Simple-Ack-PDU */
/* ASHRAE 135-2001 20.1.4 */
@@ -6082,7 +6119,7 @@ fComplexAckPDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bacapp_tree, guint
gint svc;
proto_item *tt = 0;
- offset = fStartConfirmed(tvb, bacapp_tree, offset, 1, &svc, &tt);
+ offset = fStartConfirmed(tvb, pinfo, bacapp_tree, offset, 1, &svc, &tt);
if (bacapp_seq > 0) /* Can't handle continuation segments, so just treat as data */
{
@@ -6098,7 +6135,7 @@ fComplexAckPDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bacapp_tree, guint
static guint
-fSegmentAckPDU(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset)
+fSegmentAckPDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *bacapp_tree, guint offset)
{ /* BACnet-SegmentAck-PDU */
/* ASHRAE 135-2001 20.1.6 */
@@ -6119,13 +6156,13 @@ fSegmentAckPDU(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset)
return offset;
}
-static guint fContextTaggedError(tvbuff_t *tvb, proto_tree *tree, guint offset)
+static guint fContextTaggedError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_info = 0;
guint8 parsed_tag = 0;
guint32 lvt = 0;
offset += fTagHeaderTree(tvb, tree, offset, &parsed_tag, &tag_info, &lvt);
- offset = fError(tvb, tree, offset);
+ offset = fError(tvb, pinfo, tree, offset);
return offset + fTagHeaderTree(tvb, tree, offset, &parsed_tag, &tag_info, &lvt);
}
@@ -6144,7 +6181,7 @@ fConfirmedPrivateTransferError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
fTagHeader (tvb, offset, &tag_no, &tag_info, &lvt);
switch (tag_no) {
case 0: /* errorType */
- offset = fContextTaggedError(tvb, subtree, offset);
+ offset = fContextTaggedError(tvb, pinfo, subtree, offset);
break;
case 1: /* vendorID */
offset = fVendorIdentifier (tvb, pinfo, subtree, offset);
@@ -6177,7 +6214,7 @@ fConfirmedPrivateTransferError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
}
static guint
-fCreateObjectError(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fCreateObjectError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
@@ -6185,7 +6222,7 @@ fCreateObjectError(tvbuff_t *tvb, proto_tree *tree, guint offset)
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* errorType */
- offset = fContextTaggedError(tvb,tree,offset);
+ offset = fContextTaggedError(tvb, pinfo, tree, offset);
break;
case 1: /* firstFailedElementNumber */
offset = fUnsignedTag (tvb,tree,offset,"first failed element number: ");
@@ -6198,14 +6235,14 @@ fCreateObjectError(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fChangeListError(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fChangeListError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
/* Identical to CreateObjectError */
- return fCreateObjectError(tvb, tree, offset);
+ return fCreateObjectError(tvb, pinfo, tree, offset);
}
static guint
-fVTCloseError(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fVTCloseError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint8 tag_no = 0, tag_info = 0;
guint32 lvt = 0;
@@ -6213,12 +6250,12 @@ fVTCloseError(tvbuff_t *tvb, proto_tree *tree, guint offset)
if (fTagNo(tvb, offset) == 0)
{
/* errorType */
- offset = fContextTaggedError(tvb,tree,offset);
+ offset = fContextTaggedError(tvb, pinfo, tree,offset);
if (fTagNo(tvb, offset) == 1)
{
/* listOfVTSessionIdentifiers [OPTIONAL] */
offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fVtCloseRequest (tvb, tree, offset);
+ offset = fVtCloseRequest (tvb, pinfo, tree, offset);
offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
}
}
@@ -6227,21 +6264,22 @@ fVTCloseError(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fWritePropertyMultipleError(tvbuff_t *tvb, proto_tree *tree, guint offset)
+fWritePropertyMultipleError(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
guint lastoffset = 0;
guint8 tag_no = 0, tag_info = 0;
guint32 lvt = 0;
+ col_set_writable(pinfo->cinfo, FALSE); /* don't set all infos into INFO column */
while ((tvb_reported_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */
lastoffset = offset;
switch (fTagNo(tvb, offset)) {
case 0: /* errorType */
- offset = fContextTaggedError(tvb,tree,offset);
+ offset = fContextTaggedError(tvb, pinfo, tree, offset);
break;
case 1: /* firstFailedWriteAttempt */
offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
- offset = fBACnetObjectPropertyReference(tvb, tree, offset);
+ offset = fBACnetObjectPropertyReference(tvb, pinfo, tree, offset);
offset += fTagHeaderTree(tvb, tree, offset, &tag_no, &tag_info, &lvt);
break;
default:
@@ -6252,11 +6290,11 @@ fWritePropertyMultipleError(tvbuff_t *tvb, proto_tree *tree, guint offset)
}
static guint
-fError (tvbuff_t *tvb, proto_tree *tree, guint offset)
+fError (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset)
{
- offset = fApplicationTypesEnumeratedSplit (tvb, tree, offset,
+ offset = fApplicationTypesEnumeratedSplit (tvb, pinfo, tree, offset,
"error Class: ", BACnetErrorClass, 64);
- return fApplicationTypesEnumeratedSplit (tvb, tree, offset,
+ return fApplicationTypesEnumeratedSplit (tvb, pinfo, tree, offset,
"error Code: ", BACnetErrorCode, 256);
}
@@ -6266,22 +6304,22 @@ fBACnetError (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint offset,
switch (service) {
case 8: /* no break here !!!! */
case 9:
- offset = fChangeListError (tvb, tree, offset);
+ offset = fChangeListError (tvb, pinfo, tree, offset);
break;
case 10:
- offset = fCreateObjectError (tvb,tree,offset);
+ offset = fCreateObjectError (tvb, pinfo, tree, offset);
break;
case 16:
- offset = fWritePropertyMultipleError (tvb,tree,offset);
+ offset = fWritePropertyMultipleError (tvb, pinfo, tree, offset);
break;
case 18:
offset = fConfirmedPrivateTransferError (tvb,pinfo,tree,offset);
break;
case 22:
- offset = fVTCloseError (tvb,tree,offset);
+ offset = fVTCloseError (tvb, pinfo, tree, offset);
break;
default:
- return fError (tvb, tree, offset);
+ return fError (tvb, pinfo, tree, offset);
}
return offset;
}
@@ -6308,7 +6346,7 @@ fErrorPDU(tvbuff_t *tvb, packet_info *pinfo, proto_tree *bacapp_tree, guint offs
}
static guint
-fRejectPDU(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset)
+fRejectPDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *bacapp_tree, guint offset)
{ /* BACnet-Reject-PDU */
/* ASHRAE 135-2001 20.1.8 */
@@ -6326,7 +6364,7 @@ fRejectPDU(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset)
}
static guint
-fAbortPDU(tvbuff_t *tvb, proto_tree *bacapp_tree, guint offset)
+fAbortPDU(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *bacapp_tree, guint offset)
{ /* BACnet-Abort-PDU */
/* ASHRAE 135-2001 20.1.9 */
@@ -6366,22 +6404,22 @@ do_the_dissection(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset = fUnconfirmedRequestPDU(tvb, pinfo, tree, offset);
break;
case BACAPP_TYPE_SIMPLE_ACK: /* BACnet-Simple-Ack-PDU */
- offset = fSimpleAckPDU(tvb, tree, offset);
+ offset = fSimpleAckPDU(tvb, pinfo, tree, offset);
break;
case BACAPP_TYPE_COMPLEX_ACK: /* BACnet-Complex-Ack-PDU */
offset = fComplexAckPDU(tvb, pinfo, tree, offset);
break;
case BACAPP_TYPE_SEGMENT_ACK: /* BACnet-SegmentAck-PDU */
- offset = fSegmentAckPDU(tvb, tree, offset);
+ offset = fSegmentAckPDU(tvb, pinfo, tree, offset);
break;
case BACAPP_TYPE_ERROR: /* BACnet-Error-PDU */
offset = fErrorPDU(tvb, pinfo, tree, offset);
break;
case BACAPP_TYPE_REJECT: /* BACnet-Reject-PDU */
- offset = fRejectPDU(tvb, tree, offset);
+ offset = fRejectPDU(tvb, pinfo, tree, offset);
break;
case BACAPP_TYPE_ABORT: /* BACnet-Abort-PDU */
- offset = fAbortPDU(tvb, tree, offset);
+ offset = fAbortPDU(tvb, pinfo, tree, offset);
break;
}
return offset;
@@ -6391,7 +6429,7 @@ void
dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint8 flag, bacapp_type;
- guint save_fragmented = FALSE, data_offset = 0, bacapp_apdu_size = MaxAPDUSize[0], fragment = FALSE;
+ guint save_fragmented = FALSE, data_offset = 0, bacapp_apdu_size = fGetMaxAPDUSize(0), fragment = FALSE;
tvbuff_t* new_tvb = NULL;
guint offset = 0;
gint8 bacapp_seqno = -1;
@@ -6419,7 +6457,7 @@ dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (flag & BACAPP_SEGMENTED_REQUEST)
{
fragment = TRUE;
- bacapp_apdu_size = MaxAPDUSize[tvb_get_guint8(tvb, offset + 1) & 0x0f]; /* has 16 values, reserved are 50 Bytes */
+ bacapp_apdu_size = fGetMaxAPDUSize(tvb_get_guint8(tvb, offset + 1)); /* has 16 values, reserved are 50 Bytes */
bacapp_invoke_id = tvb_get_guint8(tvb, offset + 2);
bacapp_seqno = tvb_get_guint8(tvb, offset + 3);
bacapp_prop_win_size = tvb_get_guint8(tvb, offset + 4);
@@ -6432,16 +6470,15 @@ dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
bacapp_service = tvb_get_guint8(tvb, offset + 3);
}
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "[invokeID:%d]: %s",
- bacapp_invoke_id,
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s[%3u] ",
val_to_str(bacapp_service,
BACnetConfirmedServiceChoice,
- bacapp_unknown_service_str));
+ bacapp_unknown_service_str),bacapp_invoke_id);
break;
case BACAPP_TYPE_UNCONFIRMED_SERVICE_REQUEST:
bacapp_service = tvb_get_guint8(tvb, offset + 1);
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, ": %s",
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
val_to_str(bacapp_service,
BACnetUnconfirmedServiceChoice,
bacapp_unknown_service_str));
@@ -6450,18 +6487,17 @@ dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
bacapp_invoke_id = tvb_get_guint8(tvb, offset + 1);
bacapp_service = tvb_get_guint8(tvb, offset + 2);
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "[original-invokeID:%d]: %s",
- bacapp_invoke_id,
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s[%3u] ", /* "original-invokeID" replaced */
val_to_str(bacapp_service,
BACnetConfirmedServiceChoice,
- bacapp_unknown_service_str));
+ bacapp_unknown_service_str), bacapp_invoke_id);
break;
case BACAPP_TYPE_COMPLEX_ACK:
/* segmented messages have 2 additional bytes */
if (flag & BACAPP_SEGMENTED_REQUEST)
{
fragment = TRUE;
- bacapp_apdu_size = MaxAPDUSize[0]; /* has minimum of 50 Bytes */
+ bacapp_apdu_size = fGetMaxAPDUSize(0); /* has minimum of 50 Bytes */
bacapp_invoke_id = tvb_get_guint8(tvb, offset + 1);
bacapp_seqno = tvb_get_guint8(tvb, offset + 2);
bacapp_prop_win_size = tvb_get_guint8(tvb, offset + 3);
@@ -6474,11 +6510,10 @@ dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
bacapp_service = tvb_get_guint8(tvb, offset + 2);
}
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "[original-invokeID:%d]: %s",
- bacapp_invoke_id,
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s[%3u] ", /* "original-invokeID" replaced */
val_to_str(bacapp_service,
BACnetConfirmedServiceChoice,
- bacapp_unknown_service_str));
+ bacapp_unknown_service_str), bacapp_invoke_id);
break;
case BACAPP_TYPE_SEGMENT_ACK:
/* nothing more to add */
@@ -6487,35 +6522,32 @@ dissect_bacapp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
bacapp_invoke_id = tvb_get_guint8(tvb, offset + 1);
bacapp_service = tvb_get_guint8(tvb, offset + 2);
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "[original-invokeID:%d]: %s",
- bacapp_invoke_id,
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s[%3u] ", /* "original-invokeID" replaced */
val_to_str(bacapp_service,
BACnetConfirmedServiceChoice,
- bacapp_unknown_service_str));
+ bacapp_unknown_service_str), bacapp_invoke_id);
break;
case BACAPP_TYPE_REJECT:
bacapp_invoke_id = tvb_get_guint8(tvb, offset + 1);
bacapp_reason = tvb_get_guint8(tvb, offset + 2);
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "[original-invokeID:%d]: %s",
- bacapp_invoke_id,
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s[%3u] ", /* "original-invokeID" replaced */
val_to_split_str(bacapp_reason,
64,
BACnetRejectReason,
ASHRAE_Reserved_Fmt,
- Vendor_Proprietary_Fmt));
+ Vendor_Proprietary_Fmt), bacapp_invoke_id);
break;
case BACAPP_TYPE_ABORT:
bacapp_invoke_id = tvb_get_guint8(tvb, offset + 1);
bacapp_reason = tvb_get_guint8(tvb, offset + 2);
if (check_col(pinfo->cinfo, COL_INFO))
- col_append_fstr(pinfo->cinfo, COL_INFO, "[original-invokeID:%d]: %s",
- bacapp_invoke_id,
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s[%3u] ", /* "original-invokeID" replaced */
val_to_split_str(bacapp_reason,
64,
BACnetAbortReason,
ASHRAE_Reserved_Fmt,
- Vendor_Proprietary_Fmt));
+ Vendor_Proprietary_Fmt), bacapp_invoke_id);
break;
/* UNKNOWN */
default: