versadac  1
versadac - Scalable Recorder Firmware
mrp_pkg.h
1 /***************************************************************************************
2  *********** Copyright 2005 Zurich University of Applied Sciences / InES **************
3  ***************************************************************************************
4  **
5  ** File : mrp_pkg.h
6  **
7  ** Description : This file defines constants and needed enums
8  **
9  ***************************************************************************************
10  ** Department : Institute of Embedded Systems
11  ** Project : MRP
12  ** Modul : MRP Pkg
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_pkg.h $*/
22 /* $Revision:: 4 $*/
23 /* $Date:: 16/12/10 14:44 $*/
24 
25 #ifndef MRP_PKG_H
26 #define MRP_PKG_H
27 
28 
29 #include "mrp_datatypes.h"
30 
31 #include <stdio.h>
32 /*#include <netinet/in.h>*/
33 
34 
35 
36 
37 #define TIMER_TICK_INTERVAL 1 /* Value in ms*/
38 
39 
40 /*----------------------------------------------------------------------------*/
41 /* mrp_pkg.h */
42 /*----------------------------------------------------------------------------*/
43 struct MRP_EnvEvent_T;
44 typedef struct MRP_EnvEvent_T MRP_EnvEvent_T;
45 
46 struct MRP_Environment_T;
48 
49 struct MRP_PDUFrames_T;
50 typedef struct MRP_PDUFrames_T MRP_PDUFrames_T;
51 
52 struct MRP_ProtocolEvent_T;
54 
57 
58 struct MRP_Timer_T;
59 typedef struct MRP_Timer_T MRP_Timer_T;
60 
61 struct MRP_FrameAnalyser_T;
63 
64 struct MRP_PDU_T;
65 typedef struct MRP_PDU_T MRP_PDU_T;
66 
67 struct MRP_QueueSynchronized_T;
68 typedef struct MRP_QueueSynchronized_T MRP_QueueSynchronized_T;
69 
70 struct MRP_Domain_T;
71 typedef struct MRP_Domain_T MRP_Domain_T;
72 
73 struct MRP_ForwardingDataBaseItf_T;
74 typedef struct MRP_ForwardingDataBaseItf_T MRP_ForwardingDataBaseItf_T;
75 
76 struct MRP_PortItf_T;
77 struct MRP_ForwardingDataBaseItf_T;
78 
79 
80 typedef struct DomainID DomainID;
81 struct DomainID
82 {
83  Unsigned32 Data1;
84  Unsigned16 Data2;
85  Unsigned16 Data3;
86  Unsigned8 Data4[8];
87 };
88 
89 typedef struct DomainID ST_MRP_UUID, * LPST_MRP_UUID;
90 
91 typedef enum MRPPortRole {
92  MRP_PRIMARY,
93  MRP_SECONDARY
94 } MRPPortRole;
95 
96 typedef enum MRPRoleState
97 {
98  MRP_CLIENT,
99  MRP_MANAGER
100 } MRPRoleState;
101 
102 typedef enum MRPRingState
103 {
104  MRP_RING_OPEN_STATE,
105  MRP_RING_CLOSED_STATE,
106  MRP_RING_UNDEFINED_STATE
107 } MRPRingState;
108 
109 typedef enum MRPPortState
110 {
111  MRP_DISABLED = 1,
112  MRP_BLOCKED,
113  MRP_FORWARDING
114 } MRPPortState;
115 
116 typedef enum MRPLinkState
117 {
118  MRP_LNK_DOWN,
119  MRP_LNK_UP
120 } MRPLinkState;
121 
122 typedef enum MRPError
123 {
124  MRP_NO_ERROR,
125  MRP_NOT_INITIALISED,
126  MRP_NOT_ENABLED,
127  MRP_DOMAIN_ID_MISMATCH,
128  MRP_ROLE_NOT_SUPPORTED,
129  MRP_INVALID_RINGPORT,
130  MRP_MANAGER_ROLE_FAIL,
131  MRP_CLIENT_ROLE_FAIL,
132  MRP_RING_OPEN,
133  MRP_MULTIPLE_MANAGERS,
134  MRP_MANAGER_READ_FAIL,
135  MRP_CLIENT_READ_FAIL,
136  MRP_INTERNAL_ERROR
137 } MRPError;
138 
139 
140 #define MRP_VER 0x0001
141 #define MRP_LT 0x88E3
142 #define MRP_VLAN_LT 0x8100
143 #define MRP_VLAN_PRIORITY 0x07
144 #define MRP_FDB_PRIORITY 0xFFFF
145 
146 #define MRP_END_TLV_TYPE 0x00
147 #define MRP_COMMON_TLV_TYPE 0x01
148 #define MRP_TEST_TLV_TYPE 0x02
149 #define MRP_TOPOLOGYCHANGE_TLV_TYPE 0x03
150 #define MRP_LINKDOWN_TLV_TYPE 0x04
151 #define MRP_LINKUP_TLV_TYPE 0x05
152 #define MRP_OPTION_TLV_TYPE 0x7F
153 
154 #define MRP_ENV_EVENT_QUEUE_SIZE 64
155 #define MRP_FRAME_BUFFER_SIZE 100
156 #define MRP_REACT_ON_LINK_CHANGE 1
157 #define MRP_BLOCKED_SUPPORTED 1
158 
159 #define MRP_DOMAIN_COUNT 2
160 
161 /* Helper Functions */
162 MRPBoolean equals(UChar var1[], UChar var2[], int n );
163 MRPBoolean compareDomainID(DomainID* id1, DomainID* id2);
164 
165 
166 #endif
167 
168 
169 
170 
171 
Definition: mrp_environment.h:44
Definition: mrp_timer.h:47
Definition: mrp_pduframes.h:40
Definition: mrp_pdu.h:118
Definition: mrp_protocolmachine.h:61
Definition: mrp_pkg.h:81
Definition: mrp_domain.h:54
Definition: mrp_envevent.h:53
Definition: mrp_frameanalyser.h:41
Definition: mrp_protocolevent.h:79