Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/******************************************************************************
Copyright 2018 - 2019 Intel Corporation
For licensing information, see the file 'LICENSE' in the root folder of
this software module.
*******************************************************************************/
#ifndef _DSL_CPE_CONFIGURATION_PARSER_H
#define _DSL_CPE_CONFIGURATION_PARSER_H
#if defined(INCLUDE_DSL_JSON_PARSING) && (INCLUDE_DSL_JSON_PARSING == 1)
typedef struct
{
/**
NextMode (DSL) to be used on API startup
Only of relevance if xDSL multimode is enabled by using VDSL and ADSL
G997 XTU octet bits.
NextMode
0: use API-default value (if A+V modes are selected VDSL will be used)
1: use ADSL mode as initial one for multimode handling
2: use VDSL mode as initial one for multimode handling
*/
unsigned int nNextMode;
/** MaxDeviceNumber provided by the MEI Driver */
unsigned int nMaxDeviceNumber;
/** LinesPerDevice provided by the MEI Driver */
unsigned int nLinesPerDevice;
/** ChannelsPerLine provided by the MEI Driver */
unsigned int nChannelsPerLine;
} DSL_CFG_StartupInit_t;
typedef struct
{
/** Bitswap config for US in VDSL */
DSL_boolean_t Us_Vdsl;
DSL_boolean_t Ds_Vdsl;
DSL_boolean_t Us_Adsl;
DSL_boolean_t Ds_Adsl;
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
} DSL_CFG_Bitswap_t;
typedef struct
{
/** Retransmission config for US in ADSL */
unsigned int Us_Adsl;
/** Retransmission config for DS in ADSL */
unsigned int Ds_Adsl;
/** Retransmission config for US in VDSL */
unsigned int Us_Vdsl;
/** Retransmission config for DS in VDSL */
unsigned int Ds_Vdsl;
} DSL_CFG_Retransmission_t;
typedef struct
{
/** SRA config for US in ADSL */
unsigned int Us_Adsl;
/** SRA config for DS in ADSL */
unsigned int Ds_Adsl;
/** SRA config for US in VDSL */
unsigned int Us_Vdsl;
/** SRA config for DS in VDSL */
unsigned int Ds_Vdsl;
} DSL_CFG_Sra_t;
typedef struct
{
/** Virtual Noise config for US */
DSL_boolean_t Us;
DSL_boolean_t Ds;
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
} DSL_CFG_VirtualNoise_t;
typedef struct
{
/**
The value selects the activated reboot criteria's according to the
following bitmask definitions.
Please note that some values are used only within ADSL or VDSL. For
details please refer to the UMPR of the DSL CPE API.
DEFAULT value for ADSL is "4F"
DEFAULT value for VDSL is "F"
0: CLEANED (no reboot criteria active)
1: LOM - default ON
2: LOF - default ON
4: LOS - default ON
8: ESE - default ON
10: ES90 - default OFF
20: SES30 - default OFF
40: NEGATIVE_MARGIN - default ON for ADSL / OFF for VDSL
80: OOS_BC0 - default OFF
100: OOS_BC1 - default OFF
200: NCD_BC0 - default OFF
400: NCD_BC1 - default OFF
800: LCD_BC0 - default OFF
1000: LCD_BC1 - default OFF
*/
unsigned int Adsl;
unsigned int Vdsl;
} DSL_CFG_RebootCriteria_t;
typedef struct
{
/**
The value selects the activated handshake tones according to the
following bitmask definitions.
The default values are related to the DSL operation mode. Please refer to
the UMPR of the DSL CPE API for all details.
1: VDSL2 B43
2: VDSL2 A43
4: VDSL2 V43
8: VDSL1 V43POTS
10: VDSL1 V43ISDN
20: ADSL1 C43
40: ADSL2 J43
80: ADSL2 B43C
100: ADSL2 A43C
*/
unsigned int Adsl;
unsigned int Vdsl;
} DSL_CFG_LowLevelHsTones_t;
typedef struct
{
/**
The value selects the system interface configuration for ADSL and VDSL modes
according to the following bitmask definitions:
0: Use API internal defaults
1: ATM-TC
2: EFM/PTM-TC
4: Auto-TC
*/
unsigned int nTcLayer_Adsl;
unsigned int nTcLayer_Vdsl;
} DSL_CFG_SystemInterface_t;
typedef struct
{
/**
Configuration of test and debug interface usage
0: Do not use debug and test interfaces.
Independent from feature availability.
1: Use debug and test interfaces on LAN interfaces only. - DEFAULT
Dependent on feature availability.
2: Use debug and test interfaces on ALL available interfaces.
Dependent on feature availability. Former default value.
*/
unsigned int nDebugAndTestInterfaces;
} DSL_CFG_Debugging_t;
typedef struct
{
/**
The message selects a DSL operator.
The information is used to configure operator specific settings inside the DSL firmware.
*/
unsigned int nOperatorSelect;
/**
Configuration of API shutdown handling in case of using autoboot control
command "acs <nLine> 7" (DSL_CFG_AUTOBOOT_CTRL_STOP_PD)
LdAfeShutdown
0: Do not shutdown the Line Driver and the AFE
This option should be used for example in case of underlying
ISDN service is used and an impedance change of the line should
be avoided
1: Shutdown the Line Driver and the AFE - DEFAULT
This option is selected by default and make use of a specific DSL FW
messages (if supported) to power down the LD/AFE
*/
unsigned int LdAfeShutdown;
/**
Configuration of test and debug specific vectoring setting
VectoringEnable
0: Disable any vectoring operation
1: Enables the G.993.5 full G.Vector for US and DS)
2: Enables the G.993.2 Annex Y (G.Vector friendly)
3: Enables automatic detection for the best fitting configuration
Notes:
- Vectoring is only supported for VDSL
- There are some additional conditions that needs to be fulfilled for
successful enabling of the full G.Vector functionality (Annex N)
+ DSL Firmware needs to support vectoring, means that the last digit of the
firmware version has to be "7"
+ The DSL Subsystem has to be compiled to support vectoring
*/
unsigned int VectoringEnable;
/**
VdslProfileVal
The value selects the activated Vdsl profile according to the
following bitmask definitions.
Please note that 12A/12B/17A/30A are not supported for the Dual port mode.
DEFAULT value is "0xFF" (single port mode), "0xF" (dual port mode).
1: 8A
2: 8B
4: 8C
8: 8D
10: 12A
20: 12B
40: 17A
80: 30A
100: 35B
*/
unsigned int VdslProfileVal;
/**
Configuration of Non-standard activation sequence
ActSeq
0: Automatic detection from XTSE configuration (enables Non-standard
activation sequence in case of T1.413 is enabled as well)
1: Standard Handshake (G.HS) - DEFAULT
2: Non-standard activation sequence ("Telefonica switching mode")
*/
unsigned int ActSeq;
/**
Configuration of initial activation mode
ActMode (only used if "ActMode" equals "2" or
"ActMode" equals "0" and T1.413 mode is included within XTSE octets)
1: Start with G.HS activation mode - DEFAULT
2: Start with ANSI-T1.413 activation mode
*/
unsigned int ActMode;
/**
Configuration of remember functionality used in case of activated xDSL multimode
Remember
0: disable remember functionality
1: enable remember functionality
*/
unsigned int Remember;
/**
Test and debug configuration to enable event based (autonomous FW message
handling) mode instead of polling (which is default within API and strictly
recommended to be used!)
xDSL_Dbg_FwMsgPollingOnly
0: Use autonomous FW message handling (instead of polling)
1: Use polling mode only - DEFAULT
*/
DSL_boolean_t FWMsgPollingOnly;
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
DSL_CFG_LowLevelHsTones_t sLowLevelHsTonesConfig;
} DSL_CFG_Common_t;
typedef struct
{
/** Debugging configuration */
DSL_CFG_Debugging_t sDebuggingConfig;
/** StartupInit configuration */
DSL_CFG_StartupInit_t sStartupInitConfig;
/** Bitswap configuration */
DSL_CFG_Bitswap_t sBitswapConfig;
/** Retransmission configuration */
DSL_CFG_Retransmission_t sRetransmissionConfig;
/** Sra configuration */
DSL_CFG_Sra_t sSraConfig;
/** VirtualNoise configuration */
DSL_CFG_VirtualNoise_t sVirtualNoiseConfig;
/** Reboot criteria configuration */
DSL_CFG_RebootCriteria_t sRebootCriteriaConfig;
/** SystemInterface configuration */
DSL_CFG_SystemInterface_t sSystemIfConfig;
/** Common configuration */
DSL_CFG_Common_t sCommonConfig;
/**
Configuration of test and debug specific DSL activation mode settings
G997 XTU octet bits.
G997XtuVal (only used in case of "G997XtuVal" equals "1")
*/
unsigned char G997XtuVal[DSL_G997_NUM_XTSE_OCTETS];
} DSL_ConfigurationData_t;
typedef struct
{
/**
Structure that contains initialization data */
DSL_ConfigurationData_t data;
} DSL_Configuration_t;
/*
This function initialize internal structures of Configuration module.
\remark Should be called only once and at application startup.
\return Return values are defined within the \ref DSL_Error_t definition
- DSL_SUCCESS in case of taken configuration from json file
- DSL_WRN_CONFIG_PARAM_IGNORED in case of taken default configuration
- DSL_ERROR if operation already performed
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
*/
DSL_Error_t DSL_CPE_ConfigInit();
/*
This function provides accesss to current configuration params.
\param pConfiguration Pointer to pointer to
DSL_Configuration_t structure, [O]
\return Return values are defined within the \ref DSL_Error_t definition
- DSL_SUCCESS in case of success
- DSL_ERROR if operation failed
*/
DSL_Error_t DSL_CPE_ConfigGet(
const DSL_Configuration_t **pConfiguration
);
/*
This function executes readout of configuration file then
validation and appliance of configuration params.
\param pControlContext Pointer to DSL CPE Control context structure, [I]
\return Return values are defined within the \ref DSL_Error_t definition
- DSL_SUCCESS in case of success
- DSL_ERROR if operation failed
*/
DSL_Error_t DSL_CPE_ConfigUpdate(
DSL_CPE_Control_Context_t *pCtrlCtx
);
#endif /* defined(INCLUDE_DSL_JSON_PARSING) && (INCLUDE_DSL_JSON_PARSING == 1) */
#endif /* _LIB_DSL_CONFIGURATION_PARSER_H */