20#define FRAME_ID_DCP_HELLO 0xfefc
21#define FRAME_ID_DCP_GETORSET 0xfefd
22#define FRAME_ID_DCP_IDENT_REQ 0xfefe
23#define FRAME_ID_DCP_IDENT_RES 0xfeff
27extern int proto_pn_dcp;
28extern int proto_pn_io_apdu_status;
29extern int proto_pn_io_time_aware_status;
31extern bool pnio_ps_selection;
145extern void init_pn(
int proto);
152extern void init_pn_io_rtc1(
int proto);
159extern void init_pn_rsi(
int proto);
164extern void pn_rsi_reassemble_init(
void);
171extern void init_pnio_rtc1_station(stationInfo *station_info);
184extern unsigned dissect_pn_uint8(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
185 proto_tree *tree,
int hfindex, uint8_t *pdata);
199extern unsigned dissect_pn_uint16_ret_item(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo _U_,
200 proto_tree *tree,
int hfindex, uint16_t *pdata,
proto_item ** new_item);
213extern unsigned dissect_pn_uint16(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
214 proto_tree *tree,
int hfindex, uint16_t *pdata);
227extern unsigned dissect_pn_int16(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
228 proto_tree *tree,
int hfindex, int16_t *pdata);
241extern unsigned dissect_pn_oid(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
242 proto_tree *tree,
int hfindex, uint32_t *pdata);
255extern unsigned dissect_pn_mac(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
256 proto_tree *tree,
int hfindex, uint8_t *pdata);
269extern unsigned dissect_pn_ipv4(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
270 proto_tree *tree,
int hfindex, uint32_t *pdata);
283extern unsigned dissect_pn_uuid(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
284 proto_tree *tree,
int hfindex,
e_guid_t *uuid);
296extern unsigned dissect_pn_undecoded(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
297 proto_tree *tree, uint32_t length);
310extern unsigned dissect_pn_user_data(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo _U_,
311 proto_tree *tree, uint32_t length,
const char *text);
326extern unsigned dissect_pn_pa_profile_data(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo _U_,
327 proto_tree *tree, uint32_t length,
const char *text);
339extern unsigned dissect_blocks(tvbuff_t *tvb,
unsigned offset,
340 packet_info *pinfo, proto_tree *tree, uint8_t *drep);
342#define PDU_TYPE_REQ 0x05
343#define PDU_TYPE_RSP 0x06
357extern unsigned dissect_rsi_blocks(tvbuff_t* tvb,
unsigned offset,
packet_info* pinfo, proto_tree* tree, uint8_t* drep, uint32_t u32FOpnumOffsetOpnum,
int type);
373extern unsigned dissect_pn_user_data_bytes(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo _U_,
374 proto_tree *tree, uint32_t length,
int iSelect);
386extern unsigned dissect_pn_malformed(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
387 proto_tree *tree, uint32_t length);
399extern unsigned dissect_pn_padding(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
400 proto_tree *tree,
unsigned length);
411extern unsigned dissect_pn_align4(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo, proto_tree *tree);
423extern unsigned dissect_PNIO_status(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
424 proto_tree *tree, uint8_t *drep);
438extern unsigned dissect_PNIO_C_SDU_RTC1(tvbuff_t* tvb,
unsigned offset,
packet_info* pinfo,
439 proto_tree* tree, uint8_t* drep _U_, uint16_t frameid);
453extern unsigned dissect_PNIO_RTC1_with_security(tvbuff_t* tvb,
unsigned offset,
packet_info* pinfo,
454 proto_tree* tree, uint8_t* drep _U_, uint16_t frameid);
467extern unsigned dissect_RTC3_with_security(tvbuff_t* tvb,
unsigned offset,
packet_info* pinfo,
468 proto_tree* tree, uint8_t* drep _U_,
void* data);
480extern unsigned dissect_PNIO_RSI(tvbuff_t *tvb,
unsigned offset,
packet_info *pinfo,
481 proto_tree *tree, uint8_t *drep);
493extern unsigned dissect_PNIO_RSI_with_security(tvbuff_t* tvb,
unsigned offset,
packet_info* pinfo,
494 proto_tree* tree, uint8_t* drep);
507extern unsigned dissect_SecurityMetaData_block(tvbuff_t* tvb,
unsigned offset,
518extern unsigned dissect_SecurityChecksum(tvbuff_t* tvb,
unsigned offset, proto_tree* tree);
534extern unsigned dissect_PDRsiInstances_block(tvbuff_t *tvb,
unsigned offset,
535 packet_info *pinfo, proto_tree *tree,
proto_item *item _U_, uint8_t *drep, uint8_t u8BlockVersionHigh, uint8_t u8BlockVersionLow);
552extern void pn_init_append_aruuid_frame_setup_list(
e_guid_t aruuid, uint32_t setup);
560extern ARUUIDFrame* pn_find_aruuid_frame_setup(
packet_info* pinfo);
583extern bool dissect_CSF_SDU_heur(tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree,
void *data);
593extern bool pn_is_valid_security_metadata(tvbuff_t *tvb,
unsigned security_meta_data_offset,
int expected_security_data_length);
struct _address address
Holds a network or link-layer address of any supported type.
struct conversation conversation_t
struct _packet_info packet_info
Represents the metadata and indexing information for a single captured frame.
proto_node proto_item
Definition proto.h:927
struct _wmem_list_t wmem_list_t
Opaque type representing a scoped, doubly-linked list in the wmem system.
Definition wmem_list.h:42
struct _e_guid_t e_guid_t
Represents a GUID/UUID value; may be larger than GUID_LEN so must not be used to directly overlay pac...
Definition conversation.h:280
Associates an AR UUID with the frame numbers of its setup, release, and cyclic data frames.
Definition packet-pn.h:130
uint16_t inputframe
Definition packet-pn.h:135
uint16_t outputframe
Definition packet-pn.h:134
uint32_t releaseframe
Definition packet-pn.h:133
uint32_t setupframe
Definition packet-pn.h:132
e_guid_t aruuid
Definition packet-pn.h:131
Carries the link-layer addressing context needed to correlate APDU status frames in a redundant PROFI...
Definition packet-pn.h:73
bool isRedundancyActive
Definition packet-pn.h:74
address dl_src
Definition packet-pn.h:76
address dl_dst
Definition packet-pn.h:75
Describes a single IO data object within a cyclic PROFINET frame, including PROFIsafe parameters and ...
Definition packet-pn.h:91
uint32_t fParameterIndexNr
Definition packet-pn.h:100
tvbuff_t * tvb_slot
Definition packet-pn.h:111
uint32_t api
Definition packet-pn.h:94
tvbuff_t * tvb_subslot
Definition packet-pn.h:112
uint16_t frameOffset
Definition packet-pn.h:97
uint16_t slotNr
Definition packet-pn.h:92
uint16_t f_src_adr
Definition packet-pn.h:102
uint16_t f_dest_adr
Definition packet-pn.h:103
bool profisafeSupported
Definition packet-pn.h:108
bool f_crc_seed
Definition packet-pn.h:104
uint16_t length
Definition packet-pn.h:98
uint8_t f_crc_len
Definition packet-pn.h:105
uint16_t f_par_crc1
Definition packet-pn.h:101
char * moduleNameStr
Definition packet-pn.h:110
address srcAddr
Definition packet-pn.h:106
uint8_t lastToggleBit
Definition packet-pn.h:116
uint8_t last_sb_cb
Definition packet-pn.h:115
uint32_t moduleIdentNr
Definition packet-pn.h:95
address dstAddr
Definition packet-pn.h:107
uint16_t amountInGSDML
Definition packet-pn.h:99
bool discardIOXS
Definition packet-pn.h:109
uint32_t subModuleIdentNr
Definition packet-pn.h:96
uint16_t subSlotNr
Definition packet-pn.h:93
Describes a single IOCS (IO Consumer Status) object entry within a cyclic PROFINET frame.
Definition packet-pn.h:82
uint16_t subSlotNr
Definition packet-pn.h:84
uint16_t slotNr
Definition packet-pn.h:83
uint16_t frameOffset
Definition packet-pn.h:85
Records a module whose actual ModuleIdentNumber differs from the value expected by the IO controller.
Definition packet-pn.h:122
uint16_t slotNr
Definition packet-pn.h:123
uint32_t modulID
Definition packet-pn.h:124
Holds all dissection state for a single PROFINET IO station, spanning identity, frame layout,...
Definition packet-pn.h:36
uint16_t u16Vendor_id
Definition packet-pn.h:40
char * nameofstation
Definition packet-pn.h:39
uint16_t ioDataObjectNr_out
Definition packet-pn.h:45
uint16_t iocsNr_in
Definition packet-pn.h:46
bool filled_with_objects
Definition packet-pn.h:66
wmem_list_t * iocs_data_out
Definition packet-pn.h:56
bool gsdPathLength
Definition packet-pn.h:51
wmem_list_t * iocs_data_in
Definition packet-pn.h:55
wmem_list_t * ioobject_data_in
Definition packet-pn.h:59
uint16_t iocsNr_out
Definition packet-pn.h:47
uint16_t ioDataObjectNr_in
Definition packet-pn.h:44
wmem_list_t * diff_module
Definition packet-pn.h:63
char * typeofstation
Definition packet-pn.h:38
uint16_t u16Device_id
Definition packet-pn.h:41
wmem_list_t * ioobject_data_out
Definition packet-pn.h:60
char * gsdLocation
Definition packet-pn.h:52
bool gsdFound
Definition packet-pn.h:50