aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dis-fields.h
diff options
context:
space:
mode:
authorJaap Keuter <jaap.keuter@xs4all.nl>2009-11-13 06:53:15 +0000
committerJaap Keuter <jaap.keuter@xs4all.nl>2009-11-13 06:53:15 +0000
commit0e4e74ef3dfe79df80a519c91075bfad66715f37 (patch)
tree3594b2beca7f5ac66cc0058eff3a9c44640bbe42 /epan/dissectors/packet-dis-fields.h
parentec097d99817da930daa32e7602733241111fe010 (diff)
From Michael Dishman:
Fixed parser for DIS DataRequest PDU. Added parser for DIS StartResume, StopFreeze, Acknowledge, ActionRequest, ActionResponse, Comment, CreateEntity, DeleteEntity PDUs. Added parser for "reliable" versions of the above DIS PDUs. Added parser for DIS Application Control PDU. Added parsers for DIS Persistent Object Family PDUs. svn path=/trunk/; revision=30947
Diffstat (limited to 'epan/dissectors/packet-dis-fields.h')
-rw-r--r--epan/dissectors/packet-dis-fields.h131
1 files changed, 83 insertions, 48 deletions
diff --git a/epan/dissectors/packet-dis-fields.h b/epan/dissectors/packet-dis-fields.h
index 85cb4b2efb..4c01288e46 100644
--- a/epan/dissectors/packet-dis-fields.h
+++ b/epan/dissectors/packet-dis-fields.h
@@ -52,51 +52,76 @@ typedef enum
DIS_FIELDTYPE_PAD16,
DIS_FIELDTYPE_PAD32,
- /* other atomic types, including enumerations */
+ /* enumerations */
+ DIS_FIELDTYPE_ACKNOWLEDGE_FLAG,
+ DIS_FIELDTYPE_ACTION_ID,
+ DIS_FIELDTYPE_APPLICATION_GENERAL_STATUS,
+ DIS_FIELDTYPE_APPLICATION_STATUS_TYPE,
+ DIS_FIELDTYPE_APPLICATION_TYPE,
+ DIS_FIELDTYPE_CATEGORY,
+ DIS_FIELDTYPE_CONTROL_ID,
+ DIS_FIELDTYPE_DETONATION_RESULT,
+ DIS_FIELDTYPE_DOMAIN,
+ DIS_FIELDTYPE_ENTITY_KIND,
+ DIS_FIELDTYPE_FROZEN_BEHAVIOR,
+ DIS_FIELDTYPE_PARAMETER_TYPE_DESIGNATOR,
+ DIS_FIELDTYPE_PDU_TYPE,
+ DIS_FIELDTYPE_PERSISTENT_OBJECT_TYPE,
+ DIS_FIELDTYPE_PERSISTENT_OBJECT_CLASS,
+ DIS_FIELDTYPE_PROTOCOL_FAMILY,
+ DIS_FIELDTYPE_PROTOCOL_VERSION,
+ DIS_FIELDTYPE_REASON,
+ DIS_FIELDTYPE_REQUEST_STATUS,
+ DIS_FIELDTYPE_REQUIRED_RELIABILITY_SERVICE,
+ DIS_FIELDTYPE_RESPONSE_FLAG,
+
+ /* other atomic types */
DIS_FIELDTYPE_APPEARANCE,
- DIS_FIELDTYPE_ARTIC_PARAM_TYPE_DESIGNATOR,
DIS_FIELDTYPE_ARTIC_PARAM_TYPE,
DIS_FIELDTYPE_CAPABILITIES,
- DIS_FIELDTYPE_CATEGORY,
DIS_FIELDTYPE_COUNTRY,
+ DIS_FIELDTYPE_DATUM_ID,
+ DIS_FIELDTYPE_DATUM_LENGTH,
DIS_FIELDTYPE_DEAD_RECKONING_PARAMS,
DIS_FIELDTYPE_DEAD_RECKONING_ALGORITHM,
DIS_FIELDTYPE_DEAD_RECKONING_OTHER_PARAMS,
- DIS_FIELDTYPE_DETONATION_RESULT,
- DIS_FIELDTYPE_DOMAIN,
- DIS_FIELDTYPE_ENTITY_KIND,
DIS_FIELDTYPE_ENTITY_MARKING,
DIS_FIELDTYPE_EXTRA,
+ DIS_FIELDTYPE_FIXED_DATUM_VALUE,
+ DIS_FIELDTYPE_FIXED_LEN_STR,
DIS_FIELDTYPE_FORCE_ID,
DIS_FIELDTYPE_FUSE,
- DIS_FIELDTYPE_ORIENTATION,
- DIS_FIELDTYPE_PDU_TYPE,
- DIS_FIELDTYPE_PROTOCOL_FAMILY,
- DIS_FIELDTYPE_PROTOCOL_VERSION,
- DIS_FIELDTYPE_SPECIFIC,
- DIS_FIELDTYPE_SUBCATEGORY,
- DIS_FIELDTYPE_TIMESTAMP,
- DIS_FIELDTYPE_WARHEAD,
DIS_FIELDTYPE_NUM_FIXED_DATA,
DIS_FIELDTYPE_NUM_VARIABLE_DATA,
- DIS_FIELDTYPE_DATUM_ID,
- DIS_FIELDTYPE_DATUM_LENGTH,
- DIS_FIELDTYPE_FIXED_DATUM_VALUE,
- DIS_FIELDTYPE_VARIABLE_DATUM_VALUE,
DIS_FIELDTYPE_REQUEST_ID,
+ DIS_FIELDTYPE_SPECIFIC,
+ DIS_FIELDTYPE_SUBCATEGORY,
DIS_FIELDTYPE_TIME_INTERVAL,
+ DIS_FIELDTYPE_TIMESTAMP,
+ DIS_FIELDTYPE_WARHEAD,
/* composite types */
- DIS_FIELDTYPE_ARTICULATION_PARAMETERS,
DIS_FIELDTYPE_BURST_DESCRIPTOR,
+ DIS_FIELDTYPE_CLOCK_TIME,
DIS_FIELDTYPE_ENTITY_ID,
DIS_FIELDTYPE_ENTITY_TYPE,
DIS_FIELDTYPE_EVENT_ID,
DIS_FIELDTYPE_LINEAR_VELOCITY,
- DIS_FIELDTYPE_LOCATION_WORLD,
DIS_FIELDTYPE_LOCATION_ENTITY,
- DIS_FIELDTYPE_FIXED_DATUM,
- DIS_FIELDTYPE_VARIABLE_DATUM
+ DIS_FIELDTYPE_LOCATION_WORLD,
+ DIS_FIELDTYPE_ORIENTATION,
+ DIS_FIELDTYPE_SIMULATION_ADDRESS,
+ DIS_FIELDTYPE_VARIABLE_DATUM_VALUE,
+ DIS_FIELDTYPE_VECTOR_32,
+ DIS_FIELDTYPE_VECTOR_64,
+
+ /* arrays */
+ DIS_FIELDTYPE_FIXED_DATUMS,
+ DIS_FIELDTYPE_FIXED_DATUM_IDS,
+ DIS_FIELDTYPE_VARIABLE_DATUMS,
+ DIS_FIELDTYPE_VARIABLE_DATUM_IDS,
+ DIS_FIELDTYPE_VARIABLE_PARAMETERS,
+ DIS_FIELDTYPE_VARIABLE_RECORDS
} DIS_FieldType;
@@ -106,6 +131,7 @@ typedef struct DIS_ParserNode_T
{
DIS_FieldType fieldType;
const char *fieldLabel;
+ int fieldRepeatLen;
int ettVar;
struct DIS_ParserNode_T *children;
guint32 *outputVar;
@@ -130,57 +156,66 @@ typedef struct
DIS_BitMaskMapping bitMappings[33];
} DIS_BitMask;
+/* Headers */
extern DIS_ParserNode DIS_FIELDS_PDU_HEADER[];
+extern DIS_ParserNode DIS_FIELDS_PERSISTENT_OBJECT_HEADER[];
+/* Composite types */
+extern DIS_ParserNode DIS_FIELDS_BURST_DESCRIPTOR[];
+extern DIS_ParserNode DIS_FIELDS_CLOCK_TIME[];
extern DIS_ParserNode DIS_FIELDS_ENTITY_ID[];
-
extern DIS_ParserNode DIS_FIELDS_ENTITY_TYPE[];
-
extern DIS_ParserNode DIS_FIELDS_EVENT_ID[];
-
-extern DIS_ParserNode DIS_FIELDS_LINEAR_VELOCITY[];
-
-extern DIS_ParserNode DIS_FIELDS_LOCATION_WORLD[];
-
-extern DIS_ParserNode DIS_FIELDS_LOCATION_ENTITY[];
-
-extern DIS_ParserNode DIS_FIELDS_BURST_DESCRIPTOR[];
-
-extern DIS_ParserNode DIS_FIELDS_ARTICULATION_PARAMETER[];
-
extern DIS_ParserNode DIS_FIELDS_ORIENTATION[];
+extern DIS_ParserNode DIS_FIELDS_SIMULATION_ADDRESS[];
+extern DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_32[];
+extern DIS_ParserNode DIS_FIELDS_VECTOR_FLOAT_64[];
-extern DIS_ParserNode DIS_FIELDS_NONE[];
-
+/* Array records */
extern DIS_ParserNode DIS_FIELDS_FIXED_DATUM[];
-
extern DIS_ParserNode DIS_FIELDS_VARIABLE_DATUM[];
+extern DIS_ParserNode DIS_FIELDS_DATUM_IDS[];
+extern DIS_ParserNode DIS_FIELDS_VP_TYPE[];
+extern DIS_ParserNode DIS_FIELDS_VR_TYPE[];
+/* Bit fields */
+extern DIS_ParserNode DIS_FIELDS_NONE[];
extern DIS_BitMask DIS_APPEARANCE_LANDPLATFORM[];
-
extern DIS_BitMask DIS_APPEARANCE_LIFEFORM[];
-gint parseField_Bytes(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+extern void initializeFieldParsers();
+
+extern gint parseField_Bytes(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+
+extern gint parseField_Bitmask(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+
+extern gint parseField_UInt(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-gint parseField_Bitmask(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+extern gint parseField_Int(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-gint parseField_UInt(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+extern gint parseField_Enum(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-gint parseField_Int(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+extern gint parseField_Pad(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
-gint parseField_Enum(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+extern gint parseField_Float(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
-gint parseField_Pad(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode, guint numBytes);
+extern gint parseField_Double(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
-gint parseField_Float(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
+extern gint parseField_Timestamp(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
-gint parseField_Double(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
+extern gint parseField_VariableParameter(tvbuff_t *tvb, proto_tree *tree, gint offset);
-gint parseField_Timestamp(tvbuff_t *tvb, proto_tree *tree, gint offset, DIS_ParserNode parserNode);
+extern gint parseField_VariableRecord(tvbuff_t *tvb, proto_tree *tree, gint offset);
+extern guint32 protocolVersion;
extern guint32 pduType;
+extern guint32 protocolFamily;
+extern guint32 persistentObjectPduType;
extern guint32 entityKind;
extern guint32 entityDomain;
+extern guint32 numFixed;
+extern guint32 numVariable;
extern guint32 variableDatumLength;
+extern guint32 variableRecordLength;
#endif /* packet-dis-fieldparsers.h */