versadac  1
versadac - Scalable Recorder Firmware
mrp_pdu.h
1 /***************************************************************************************
2  *********** Copyright 2005 Zurich University of Applied Sciences / InES **************
3  ***************************************************************************************
4  **
5  ** File : mrp_pdu.h
6  **
7  ** Description : This file provides the pdu class
8  **
9  ***************************************************************************************
10  ** Department : Institute of Embedded Systems
11  ** Project : MRP
12  ** Modul : MRP_PDU_T
13  ** Author : Christian Schaer
14  ** Contact : scc@zhwin.ch
15  ** Date : 10.04.2006
16  ****************************** Modifications ******************************************
17  **
18  ** Date : Who : Comment :
19  ** 10.05.06 scc initial release
20  **************************************************************************************/
21 /* $Workfile:: mrp_pdu.h $*/
22 /* $Revision:: 3 $*/
23 /* $Date:: 16/12/10 14:44 $*/
24 
25 #ifndef MRP_PDU_H
26 #define MRP_PDU_H
27 
28 
29 /***********************************************************************/
30 /*** Header Files Includes ***/
31 /***********************************************************************/
32 
33 #include "mrp_pkg.h"
34 
35 
36 /***********************************************************************/
37 /*** Definitions ***/
38 /***********************************************************************/
39 
40 typedef enum MRPPDUType {
41  MRP_Test,
42  MRP_TopologyChange,
43  MRP_LinkUp,
44  MRP_LinkDown
45 }MRPPDUType;
46 
47 typedef struct MRP_PDU_Header
48 {
49  UChar MRP_DestinationAdress[6];
50  UChar MRP_SourceAdress[6];
51  Unsigned16 LT;
52  Unsigned16 MRP_Ver;
54 
55 typedef struct MRP_PDU_Header_VLAN
56 {
57  UChar MRP_DestinationAdress[6];
58  UChar MRP_SourceAdress[6];
59  Unsigned16 LT_VLAN;
60  Unsigned16 TagControlInformation;
61  Unsigned16 LT;
62  Unsigned16 MRP_Ver;
64 
65 typedef struct MRP_PDU_Test
66 {
67  Unsigned16 MRP_TLV;
68  Unsigned16 MRP_Prio;
69  UChar MRP_SA[6];
70  Unsigned16 MRP_PortRole;
71  Unsigned16 MRP_RingState;
72  Unsigned16 MRP_Transition;
73  Unsigned32 MRP_TimeStamp;
74 } MRP_PDU_Test;
75 
76 typedef struct MRP_PDU_TopologyChange
77 {
78  Unsigned16 MRP_TLV;
79  Unsigned16 MRP_Prio;
80  UChar MRP_SA[6];
81  Unsigned16 MRP_Interval;
83 
84 typedef struct MRP_PDU_LinkChange
85 {
86  Unsigned16 MRP_TLV;
87  UChar MRP_SA[6];
88  Unsigned16 MRP_PortRole;
89  Unsigned16 MRP_Interval;
90  Unsigned16 MRP_Blocked;
91  UChar MRP_padding[2];
93 
94 typedef struct MRP_PDU_Common
95 {
96  Unsigned16 MRP_TLV;
97  Unsigned16 MRP_SequenceID;
98  DomainID MRP_DomainID;
100 
101 typedef struct MRP_PDU_Option
102 {
103  Unsigned16 MRP_TLV;
104  UChar MRP_OUI[3];
105  UChar MRP_OUIData[3];
107 
108 typedef struct MRP_PDU_End
109 {
110  Unsigned16 MRP_TLV;
111 } MRP_PDU_End;
112 
113 
114 /***********************************************************************/
115 /*** class MRP_PDU_T ***/
116 /***********************************************************************/
117 
118 struct MRP_PDU_T
119 {
120  MRPPDUType pdu_type_;
121  Unsigned16 rx_port_;
122  Unsigned16 vlan_id_;
123  char* data_ptr_;
124 
125  MRP_PDU_Header * header_;
126  MRP_PDU_Test * test_;
127  MRP_PDU_TopologyChange * topologychange_;
128  MRP_PDU_LinkChange * linkchange_;
129  MRP_PDU_Common * common_;
130  MRP_PDU_Option * option_;
131 };
132 
133 
134 /********************************************/
135 /*** Constructors and destructors ***/
136 /********************************************/
137 
138 void MRP_PDU_T_Init(MRP_PDU_T* const me);
139 
140 void MRP_PDU_T_Cleanup(MRP_PDU_T* const me);
141 
142 
143 /********************************************/
144 /*** public Methods ***/
145 /********************************************/
146 
147 void MRP_PDU_T_print(MRP_PDU_T* const me);
148 
149 
150 #endif
151 
152 
Definition: mrp_pdu.h:108
Definition: mrp_pdu.h:118
Definition: mrp_pdu.h:76
Definition: mrp_pkg.h:81
Definition: mrp_pdu.h:55
Definition: mrp_pdu.h:101
Definition: mrp_pdu.h:47
Definition: mrp_pdu.h:65
Definition: mrp_pdu.h:94