http://downloads.netgear.com/files/GPL/GPL_Source_V361j_DM111PSP_series_consumer_rele...
[bcm963xx.git] / userapps / broadcom / cfm / inc / psixml.h
1 /*****************************************************************************
2 # <:copyright-gpl
3 # Copyright 2004 Broadcom Corp. All Rights Reserved.
4 # This program is free software; you can distribute it and/or modify it
5 # under the terms of the GNU General Public License (Version 2) as
6 # published by the Free Software Foundation.
7 # This program is distributed in the hope it will be useful, but WITHOUT
8 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
10 # for more details.
11 # You should have received a copy of the GNU General Public License along
12 # with this program; if not, write to the Free Software Foundation, Inc.,
13 # 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
14 # :>
15 ******************************************************************************
16 //
17 //  Filename:       psixml.h
18 //  Author:         yt
19 //  Creation Date:  05/11/04
20 //
21 ******************************************************************************
22 //  Description:
23 //      Define the global types, enums. and constants for PSI in XML format
24 //
25 *****************************************************************************/
26
27 #ifndef __PSIXML_H__
28 #define __PSIXML_H__
29
30 #include "bcmtypes.h"
31 #include "psidefs.h"
32 #include "objectdefs.h"
33 #include "wldefs.h"
34 #include "nanoxml.h"
35
36 #define PSX_NAME_LEN                   24
37 #define PSX_MAGIC_LEN                  16
38 #define PSX_MAGIC_VALUE                "-$-PSI-$02.12r01"
39 #define PSX_CRC32_INIT_VALUE 0xffffffff /* Initial CRC32 checksum value */
40 #define PSX_CRC32_GOOD_VALUE 0xdebb20e3 /* Good final CRC32 checksum value */
41 #define PSX_STR_LEN                    50
42 #define PSX_VERIFY                     1
43 #define PSX_STORE                      0
44 #define PSX_TABLE_TYPE                 2
45 #define PSX_APP_TYPE                   1
46 #define PSX_OBJ_TYPE                   0
47
48 #define MONDAY        0x1
49 #define TUESDAY       0x2
50 #define WEDNSDAY      0x4
51 #define THURSDAY      0x8
52 #define FRIDAY        0x10
53 #define SATURDAY      0x20
54 #define SUNDAY        0x40
55
56 #define XML_PSI_START_TAG      "<psitree>"
57 #define XML_PSI_END_TAG        "</psitree>"
58
59 #define XML_PORT_RANGE_MIN     1
60 #define XML_PORT_RANGE_MAX     65535
61 //#define XML_MAX_SNMP_STR_LEN   15
62 #define XML_MAX_SNMP_STR_LEN   64//Andy exten to 64
63 #define XML_MAX_TOD_ENTRY      16
64
65 /* string  */
66 #define PSX_ATTRNAME_SET       1
67 #define PSX_ATTRSTR_SET        2
68
69 /* object and attribute names definitions */
70 #define PSX_ATTR_STATE             "state"
71
72 typedef enum {
73    PSX_STS_OK = 0,
74    PSX_STS_ERR_GENERAL,
75    PSX_STS_ERR_MEMORY,
76    PSX_STS_ERR_FIND_APP,
77    PSX_STS_ERR_FIND_OBJ,
78    PSX_STS_ERR_FIND_HDL_FNC,
79    PSX_STS_ERR_FATAL,
80    PSX_STS_ERR_MILD
81 #if defined(SUPPORT_PARTCONF)
82    ,PSX_STS_RESTORE_SAME
83 #endif
84 } PSX_STATUS;
85
86 /* internal callback statemachine */
87 typedef enum {
88    state_start,
89    state_psi_begin,
90    state_psi_end
91 } xml_state;
92
93
94 typedef struct xmlParseState {
95    xml_state state;
96    char appName[32];
97    PSI_HANDLE appHandle;
98    char objName[32];
99    char attrName[32];
100    char tableName[32];
101    int tableSize;
102    int tableIndex;
103    PSX_STATUS errorFlag;
104    int verify;                    /* verify=1 verifcation only, verfify=0 conversion only */
105 #if defined(SUPPORT_PARTCONF)
106    int restore;                       /*restore=1 do restore configure*/
107 #endif
108 } XML_PARSE_STATE, *pXML_PARSE_STATE;
109
110 typedef PSX_STATUS (*PSX_SET_OBJ_FNC) (FILE *file, const char *appName, const UINT16 id,
111                                        const PSI_VALUE value, const UINT16 length);
112 typedef PSX_STATUS (*PSX_GET_OBJ_FNC) (char *appName, char *objName, char *attrName,
113                                        char* attrValue);
114 typedef void (*PSX_SET_ATTR_FNC) (FILE *file, const char *name, const UINT16 id,
115                                   const PSI_VALUE value, const UINT16 length);
116
117 typedef PSX_STATUS (*PSX_GET_ATTR_FNC) (char *attrName, char *attrValue);
118 typedef PSX_STATUS (*PSX_OBJ_FNC) (char *appName,  char *objName);
119
120
121
122 typedef struct {
123    char  appName[PSX_NAME_LEN];
124    PSX_SET_OBJ_FNC setObjFnc;
125    PSX_GET_OBJ_FNC getObjFnc;     /* base on appName, find the object's getObjFnc */
126    PSX_OBJ_FNC startObjFnc;       /* base on appName, find the object's startObjFnc */
127    PSX_OBJ_FNC endObjFnc;         /* base on appName, find the object's endObjFnc */
128 } PSX_APP_ITEM, *PPSX_APP_ITEM;
129
130 typedef struct {
131    char  objName[PSX_NAME_LEN];
132    PSX_SET_ATTR_FNC setAttrFnc;
133    PSX_GET_ATTR_FNC getAttrFnc;  /* getting object from XML file, do verification/store */
134    PSX_OBJ_FNC startObjFnc;     /* beginning of object, resource allocated */
135    PSX_OBJ_FNC endObjFnc;       /* end of object, do verification/storeToPSI, oresource deallocated */
136 } PSX_OBJ_ITEM, *PPSX_OBJ_ITEM;
137
138 #if defined(__cplusplus)
139 extern "C" {
140 #endif
141 extern PSX_STATUS xmlSetObjNode(FILE* file, const char *appName, const UINT16 id,
142                          const PSI_VALUE value, const UINT16 length);
143 extern PSX_STATUS xmlSetSysObjNode(FILE* file, const char *appName, const UINT16 id,
144                             const PSI_VALUE value, const UINT16 length);
145 extern PSX_STATUS xmlSetRouteObjNode(FILE* file, const char *appName, const UINT16 id,
146                             const PSI_VALUE value, const UINT16 length);
147 extern PSX_STATUS xmlSetPMapObjNode(FILE* file, const char *appName, const UINT16 id,
148                             const PSI_VALUE value, const UINT16 length);
149 extern PSX_STATUS xmlSetLanNode(FILE* file, const char *appName, const UINT16 id,
150                          const PSI_VALUE value, const UINT16 length);
151 extern PSX_STATUS xmlSetWirelessNode(FILE* file, const char *appName, const UINT16 id,
152                               const PSI_VALUE value, const UINT16 length);
153 extern PSX_STATUS xmlSetWanNode(FILE* file, const char *appName, const UINT16 id,
154                          const PSI_VALUE value, const UINT16 length);
155 extern PSX_STATUS xmlSetAtmTdNode(FILE* file, const char *appName, const UINT16 id,
156                            const PSI_VALUE value, const UINT16 length);
157 extern PSX_STATUS xmlSetAtmVccNode(FILE* file, const char *appName, const UINT16 id,
158                             const PSI_VALUE value, const UINT16 length);
159 extern PSX_STATUS xmlSetAtmCfgNode(FILE* file, const char *appName, const UINT16 id,
160                             const PSI_VALUE value, const UINT16 length);
161 extern PSX_STATUS xmlSetSecObjNode(FILE* file, const char *appName, const UINT16 id,
162                             const PSI_VALUE value, const UINT16 length);
163 extern PSX_STATUS xmlSetAdslObjNode(FILE* file, const char *appName, const UINT16 id,
164                              const PSI_VALUE value, const UINT16 length);
165 extern PSX_STATUS xmlSetSntpNode(FILE* file, const char *appName, const UINT16 id,
166                           const PSI_VALUE value, const UINT16 length);
167 extern PSX_STATUS xmlSetToDNode(FILE* file, const char *appName, const UINT16 id,
168                          const PSI_VALUE value, const UINT16 length);
169 extern PSX_STATUS xmlSetDhcpClntNode(FILE* file, const char *appName, const UINT16 id,
170                               const PSI_VALUE value, const UINT16 length);
171 extern PSX_STATUS xmlSetPppNode(FILE* file, const char *appName, const UINT16 id,
172                          const PSI_VALUE value, const UINT16 length);
173 extern PSX_STATUS xmlSetDdnsNode(FILE* file, const char *appName, const UINT16 id,
174                           const PSI_VALUE value, const UINT16 length);
175
176 extern void xmlSetTr69cAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
177                  const UINT16 length);
178 extern void xmlSetMgmtLockAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
179                  const UINT16 length);
180 extern void xmlSetStrObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
181                       const UINT16 length);
182 extern void xmlSetSysLogAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
183                       const UINT16 length);
184 extern void xmlSetDftGwAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
185                      const UINT16 length);
186 extern void xmlSetDnsAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
187                    const UINT16 length);
188 extern void xmlSetOtherSysAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
189                         const UINT16 length);
190 extern void xmlSetSnmpAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
191                     const UINT16 length);
192 extern void xmlSetRouteAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
193                            const UINT16 length);
194 extern void xmlSetRipIfcAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
195                       const UINT16 length);
196 extern void xmlSetRipAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
197                    const UINT16 length);
198 extern void xmlSetPMapAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
199                    const UINT16 length);
200 extern void xmlSetLanAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
201                    const UINT16 length);
202 extern void xmlWlSetWebAttr(FILE *file, PWIRELESS_VAR wlVars);
203 extern void xmlWlSetEncrytionAttr(FILE *file, PWIRELESS_VAR wlVars);
204 extern void xmlWlSetEncryptionStrengthAttr(FILE *file, PWIRELESS_VAR wlVars);
205 extern void xmlWlSetRadiusServerAttr(FILE *file, PWIRELESS_VAR wlVars);
206 extern void xmlSetWirelessVarsAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
207                            const UINT16 length);
208 extern void xmlSetWirelessMacFilterAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
209                                 const UINT16 length);
210 extern void xmlSetAtmInitAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
211                        const UINT16 length);
212 extern void xmlSetAtmPortAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
213                        const UINT16 length);
214 extern void xmlSetAtmTdNumAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
215                         const UINT16 length);
216 extern void xmlSetAtmTdTblAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
217                         const UINT16 length);
218 extern void xmlSetAtmIfcAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
219                       const UINT16 length);
220 extern void xmlSetAtmVccNumAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
221                          const UINT16 length);
222 extern void xmlSetAtmVccTblAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
223                         const UINT16 length);
224 extern void xmlSetDmzHostAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
225                        const UINT16 length);
226 extern void xmlSetServiceCtrlAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
227                            const UINT16 length);
228 extern void xmlSetVirtualSrvAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
229                       const UINT16 length);
230 extern void xmlSetIpFilterAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
231                       const UINT16 length);
232 extern void xmlSetPrtTriggerAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
233                           const UINT16 length);
234 extern void xmlSetMacFilterAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
235                          const UINT16 length);
236 extern void xmlSetAccessControlAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
237                              const UINT16 length);
238 extern void xmlSetAccessControlModeAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
239                                  const UINT16 length);
240 extern void xmlSetQosAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
241                    const UINT16 length);
242 extern void xmlSetToDCntrlAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
243                         const UINT16 length);
244 extern void xmlSetDdnsAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
245                     const UINT16 length);
246 extern void xmlSetEthAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
247                    const UINT16 length);
248 #if defined(SUPPORT_PARTCONF)
249 extern PSX_STATUS xmlParse(char *xmlBuffer, int xmlSize, int verify, int restore);
250 #else
251 extern PSX_STATUS xmlParse(char *xmlBuffer, int xmlSize, int verify);
252 #endif
253 extern void xmlTagBegin(nxml_t handle, const char *tag_name, unsigned len);
254 extern void xmlTagEnd(nxml_t handle, const char *tag_name, unsigned len);
255 extern void xmlAttrBegin(nxml_t handle, const char *tag_name, unsigned len);
256 extern void xmlAttrValue(nxml_t handle, const char *tag_name, unsigned len);
257 extern void xmlData(nxml_t handle, const char *tag_name, unsigned len);
258 extern PSX_STATUS xmlGetObjNode(char *appName, char *objTagName,
259                                 char *attrName, char *value);
260 extern PSX_STATUS xmlVerifyObjNode(char *appName, char *objTagName,
261                             char *attrName, char *value);
262 extern PSX_STATUS xmlStartObjNode(char *appName, char *objTagName);
263 extern PSX_STATUS xmlEndObjNode(char *appName, char *objTagName);
264
265 extern PSX_STATUS xmlGetSysObjNode(char *appName, char *objName, char *attrName, char* attrValue);
266 extern PSX_STATUS xmlStartSysObjNode(char *appName, char *objName);
267 extern PSX_STATUS xmlEndSysObjNode(char *appName, char *objName);
268 extern PSX_STATUS xmlGetSysUserNameAttr(char *attrName, char* attrValue);
269 extern PSX_STATUS xmlGetSysPasswordAttr(char *attrName, char* attrValue);
270 extern PSX_STATUS xmlStartSysUserNamePasswordObj(char *appName, char *objName);
271 extern PSX_STATUS xmlEndSysUserNamePasswordObj(char *appName, char *objName);
272 extern PSX_STATUS xmlGetTr69cAttr(char *attrName, char* attrValue);
273 extern PSX_STATUS xmlStartTr69cObj(char *appName, char *objName);
274 extern PSX_STATUS xmlEndTr69cObj(char *appName, char *objName);
275 extern PSX_STATUS xmlGetMgmtLockAttr(char *attrName, char* attrValue);
276 extern PSX_STATUS xmlStartMgmtLockObj(char *appName, char *objName);
277 extern PSX_STATUS xmlEndMgmtLockObj(char *appName, char *objName);
278 extern PSX_STATUS xmlGetDftGwAttr(char *attrName, char* attrValue);
279 extern PSX_STATUS xmlStartDftGwObj(char *appName, char *objName);
280 extern PSX_STATUS xmlEndDftGwObj(char *appName, char *objName);
281 extern PSX_STATUS xmlGetDnsAttr(char *attrName, char* attrValue);
282 extern PSX_STATUS xmlStartDnsObj(char *appName, char *objName);
283 extern PSX_STATUS xmlEndDnsObj(char *appName, char *objName);
284 extern PSX_STATUS xmlGetSyslogAttr(char *attrName, char* attrValue);
285 extern PSX_STATUS xmlStartSyslogObj(char *appName, char *objName);
286 extern PSX_STATUS xmlEndSyslogObj(char *appName, char *objName);
287 extern PSX_STATUS xmlGetSnmpAttr(char *attrName, char* attrValue);
288 extern PSX_STATUS xmlStartSnmpObj(char *appName, char *objName);
289 extern PSX_STATUS xmlEndSnmpObj(char *appName, char *objName);
290 extern PSX_STATUS xmlGetOtherSysAttr(char *attrName, char* attrValue);
291 extern PSX_STATUS xmlStartOtherSysObj(char *appName, char *objName);
292 extern PSX_STATUS xmlEndOtherSysObj(char *appName, char *objName);
293 extern PSX_STATUS xmlGetAtmVccObjNode(char *appName, char *objName, char *attrName,
294                                       char* attrValue);
295 extern PSX_STATUS xmlGetAtmVccAttr(char *attrName, char* attrValue);
296 extern PSX_STATUS xmlStartAtmVccObjNode(char *appName, char *objName);
297 extern PSX_STATUS xmlEndAtmVccObjNode(char *appName, char *objName);
298 extern PSX_STATUS xmlGetWanObjNode(char *appName, char *objName, char *attrName,
299                                    char* attrValue);
300 extern PSX_STATUS xmlGetWanAttr(char *attrName, char* attrValue);
301 extern PSX_STATUS xmlStartWanObjNode(char *appName, char *objName);
302 extern PSX_STATUS xmlEndWanObjNode(char *appName, char *objName);
303 extern PSX_STATUS xmlGetPppObjNode(char *appName, char *objName, char *attrName,
304                                    char* attrValue);
305 extern PSX_STATUS xmlGetPppAttr(char *attrName, char* attrValue);
306 extern PSX_STATUS xmlStartPppObjNode(char *appName, char *objName);
307 extern PSX_STATUS xmlEndPppObjNode(char *appName, char *objName);
308 extern PSX_STATUS xmlGetSecObjNode(char *appName, char *objName, char *attrName, char* attrValue);
309 extern PSX_STATUS xmlStartSecObjNode(char *appName, char *objName);
310 extern PSX_STATUS xmlEndSecObjNode(char *appName, char *objName);
311 extern PSX_STATUS xmlGetVrtSrvAttr(char *attrName, char* attrValue);
312 extern PSX_STATUS xmlEndVrtSrvObj(char *appName, char *objName);
313 extern PSX_STATUS xmlGetVrtSrvEntryAttr(char *attrName, char* attrValue);
314 extern PSX_STATUS xmlEndVrtSrvEntryObj(char *appName, char *objName);
315 extern PSX_STATUS xmlGetIpFilterAttr(char *attrName, char* attrValue);
316 extern PSX_STATUS xmlEndIpFilterObj(char *appName, char *objName);
317 extern PSX_STATUS xmlGetIpFilterEntryAttr(char *attrName, char* attrValue);
318 extern PSX_STATUS xmlEndIpFilterEntryObj(char *appName, char *objName);
319 extern PSX_STATUS xmlGetPrtTriggerAttr(char *attrName, char* attrValue);
320 extern PSX_STATUS xmlEndPrtTriggerObj(char *appName, char *objName);
321 extern PSX_STATUS xmlGetPrtTriggerEntryAttr(char *attrName, char* attrValue);
322 extern PSX_STATUS xmlEndPrtTriggerEntryObj(char *appName, char *objName);
323 extern PSX_STATUS xmlGetMacFilterAttr(char *attrName, char* attrValue);
324 extern PSX_STATUS xmlEndMacFilterObj(char *appName, char *objName);
325 extern PSX_STATUS xmlGetMacFilterEntryAttr(char *attrName, char* attrValue);
326 extern PSX_STATUS xmlEndMacFilterEntryObj(char *appName, char *objName);
327 extern PSX_STATUS xmlGetQosClsAttr(char *attrName, char* attrValue);
328 extern PSX_STATUS xmlStartQosClsEntryObj(char *appName, char *objName);
329 extern PSX_STATUS xmlEndQosClsObj(char *appName, char *objName);
330 extern PSX_STATUS xmlGetQosClsEntryAttr(char *attrName, char* attrValue);
331 extern PSX_STATUS xmlEndQosClsEntryObj(char *appName, char *objName);
332 extern PSX_STATUS xmlGetAccCntrlAttr(char *attrName, char* attrValue);
333 extern PSX_STATUS xmlEndAccCntrlObj(char *appName, char *objName);
334 extern PSX_STATUS xmlGetAccCntrlEntryAttr(char *attrName, char* attrValue);
335 extern PSX_STATUS xmlEndAccCntrlEntryObj(char *appName, char *objName);
336 extern PSX_STATUS xmlGetAccCntrlModeAttr(char *attrName, char* attrValue);
337 extern PSX_STATUS xmlStartAccCntrlModeObj(char *appName, char *objName);
338 extern PSX_STATUS xmlEndAccCntrlModeObj(char *appName, char *objName);
339 extern PSX_STATUS xmlGetDmzHostAttr(char *attrName, char* attrValue);
340 extern PSX_STATUS xmlStartDmzHostObj(char *appName, char *objName);
341 extern PSX_STATUS xmlEndDmzHostObj(char *appName, char *objName);
342 extern PSX_STATUS xmlGetServiceCtrlAttr(char *attrName, char* attrValue);
343 extern PSX_STATUS xmlStartServiceCtrlObj(char *appName, char *objName);
344 extern PSX_STATUS xmlEndServiceCtrlObj(char *appName, char *objName);
345 extern PSX_STATUS xmlGetDhcpClntNode(char *appName, char *objName, char *attrName,
346                                    char* attrValue);
347 extern PSX_STATUS xmlGetDhcpClntAttr(char *attrName, char* attrValue);
348 extern PSX_STATUS xmlStartDhcpClntNode(char *appName, char *objName);
349 extern PSX_STATUS xmlEndDhcpClntNode(char *appName, char *objName);
350 extern PSX_STATUS xmlGetAtmTdObjNode(char *appName, char *objName, char *attrName,
351                                    char* attrValue);
352 extern PSX_STATUS xmlGetAtmTdAttr(char *attrName, char* attrValue);
353 extern PSX_STATUS xmlStartAtmTdObjNode(char *appName, char *objName);
354 extern PSX_STATUS xmlEndAtmTdObjNode(char *appName, char *objName);
355 extern PSX_STATUS xmlGetLanNode(char *appName, char *objName, char *attrName,
356                                 char* attrValue);
357 extern PSX_STATUS xmlGetLanAttr(char *attrName, char* attrValue);
358 extern PSX_STATUS xmlStartLanObj(char *appName, char *objName);
359 extern PSX_STATUS xmlEndLanObj(char *appName, char *objName);
360 extern PSX_STATUS xmlGetWirelessObjNode(char *appName, char *objName, char *attrName,
361                                         char* attrValue);
362 extern PSX_STATUS xmlStartWirelessObjNode(char *appName, char *objName);
363 extern PSX_STATUS xmlEndWirelessObjNode(char *appName, char *objName);
364 extern PSX_STATUS xmlGetWirelessVarsAttr(char *attrName, char* attrValue);
365 extern PSX_STATUS xmlStartWirelessVarsObj(char *appName, char *objName);
366 extern PSX_STATUS xmlEndWirelessVarsObj(char *appName, char *objName);
367 extern PSX_STATUS xmlGetWirelessMacFilterEntryAttr(char *attrName, char* attrValue);
368 extern PSX_STATUS xmlEndWirelessMacFilterEntryObj(char *appName, char *objName);
369 extern PSX_STATUS xmlGetWirelessMacFilterAttr(char *attrName, char* attrValue);
370 extern PSX_STATUS xmlEndWirelessMacFilterObj(char *appName, char *objName);
371 extern void xmlSetWirelessMssidVarsAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length);
372 extern PSX_STATUS xmlGetWirelessMssidVarsAttr(char * attrName, char * attrValue);
373 extern PSX_STATUS xmlEndWirelessMssidVarsObj(char *appName, char *objName);
374 extern PSX_STATUS xmlGetWirelessMssidVarsEntryAttr(char *attrName, char* attrValue);
375 extern PSX_STATUS xmlEndWirelessMssidVarsEntryObj(char *appName, char *objName);
376 extern PSX_STATUS xmlGetRouteObjNode(char *appName, char *objName, char *attrName, char* attrValue);
377 extern PSX_STATUS xmlStartRouteObjNode(char *appName, char *objName);
378 extern PSX_STATUS xmlEndRouteObjNode(char *appName, char *objName);
379 extern PSX_STATUS xmlGetRouteAttr(char *attrName, char* attrValue);
380 extern PSX_STATUS xmlEndRouteObj(char *appName, char *objName);
381 extern PSX_STATUS xmlGetRouteEntryAttr(char *attrName, char* attrValue);
382 extern PSX_STATUS xmlEndRouteEntryObj(char *appName, char *objName);
383 extern PSX_STATUS xmlGetRipAttr(char *attrName, char* attrValue);
384 extern PSX_STATUS xmlStartRipObj(char *appName, char *objName);
385 extern PSX_STATUS xmlEndRipObj(char *appName, char *objName);
386 extern PSX_STATUS xmlGetRipIfcAttr(char *attrName, char* attrValue);
387 extern PSX_STATUS xmlEndRipIfcObj(char *appName, char *objName);
388 extern PSX_STATUS xmlGetRipIfcEntryAttr(char *attrName, char* attrValue);
389 extern PSX_STATUS xmlEndRipIfcEntryObj(char *appName, char *objName);
390
391 extern PSX_STATUS xmlGetPMapObjNode(char *appName, char *objName, char *attrName, char* attrValue);
392 extern PSX_STATUS xmlStartPMapObjNode(char *appName, char *objName);
393 extern PSX_STATUS xmlEndPMapObjNode(char *appName, char *objName);
394 extern PSX_STATUS xmlGetPMapAttr(char *attrName, char* attrValue);
395 extern PSX_STATUS xmlEndPMapObj(char *appName, char *objName);
396 extern PSX_STATUS xmlGetPMapEntryAttr(char *attrName, char* attrValue);
397 extern void xmlSetPMapIfcCfgAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
398                    const UINT16 length);
399 extern PSX_STATUS xmlGetPMapIfcCfgAttr(char *attrName, char* attrValue);
400 extern PSX_STATUS xmlStartPMapIfcCfgObj(char *appName, char *objName);
401 extern PSX_STATUS xmlEndPMapIfcCfgObj(char *appName, char *objName);
402 extern PSX_STATUS xmlEndPMapEntryObj(char *appName, char *objName);
403
404 extern PSX_STATUS xmlGetDdnsObjNode(char *appName, char *objName, char *attrName, char* attrValue);
405 extern PSX_STATUS xmlStartDdnsObjNode(char *appName, char *objName);
406 extern PSX_STATUS xmlEndDdnsObjNode(char *appName, char *objName);
407 extern PSX_STATUS xmlGetDdnsAttr(char *attrName, char* attrValue);
408 extern PSX_STATUS xmlEndDdnsObj(char *appName, char *objName);
409 extern PSX_STATUS xmlGetDdnsEntryAttr(char *attrName, char* attrValue);
410 extern PSX_STATUS xmlEndDdnsEntryObj(char *appName, char *objName);
411 extern PSX_STATUS xmlGetAtmCfgNode(char *appName, char *objName, char *attrName,
412                                    char* attrValue);
413 extern PSX_STATUS xmlStartAtmCfgNode(char *appName, char *objName);
414 extern PSX_STATUS xmlEndAtmCfgNode(char *appName, char *objName);
415 extern PSX_STATUS xmlGetAtmInitAttr(char *attrName, char* attrValue);
416 extern PSX_STATUS xmlStartAtmInitObj(char *appName, char *objName);
417 extern PSX_STATUS xmlEndAtmInitObj(char *appName, char *objName);
418
419 extern PSX_STATUS xmlGetAdslNode(char *appName, char *objName, char *attrName,
420                                  char* attrValue);
421 extern PSX_STATUS xmlGetAdslAttr(char *attrName, char* attrValue);
422 extern PSX_STATUS xmlStartAdslObj(char *appName, char *objName);
423 extern PSX_STATUS xmlEndAdslObj(char *appName, char *objName);
424
425 extern PSX_STATUS xmlGetSntpNode(char *appName, char *objName, char *attrName,
426                                  char* attrValue);
427 extern PSX_STATUS xmlGetSntpAttr(char *attrName, char* attrValue);
428 extern PSX_STATUS xmlStartSntpObj(char *appName, char *objName);
429 extern PSX_STATUS xmlEndSntpObj(char *appName, char *objName);
430 extern PSX_STATUS xmlGetToDObjNode(char *appName, char *objName, char *attrName, char* attrValue);
431 extern PSX_STATUS xmlStartToDObjNode(char *appName, char *objName);
432 extern PSX_STATUS xmlEndToDObjNode(char *appName, char *objName);
433 extern PSX_STATUS xmlGetToDAttr(char *attrName, char* attrValue);
434 extern PSX_STATUS xmlEndToDObj(char *appName, char *objName);
435 extern PSX_STATUS xmlGetToDEntryAttr(char *attrName, char* attrValue);
436 extern PSX_STATUS xmlEndToDEntryObj(char *appName, char *objName);
437
438 extern PSX_STATUS xmlSetVoiceNode(FILE* file, const char *appName, const UINT16 id,
439                                   const PSI_VALUE value, const UINT16 length);
440
441 extern PSX_STATUS xmlGetVoiceNode(char *appName, char *objName, char *attrName, char* attrValue);
442 extern PSX_STATUS xmlStartVoiceNode(char *appName, char *objName);
443 extern PSX_STATUS xmlEndVoiceNode(char *appName, char *objName);
444 #if defined(IP_RV_SIP)
445   extern void  xmlSetRvSipAttr(FILE* file, const char *appName, const UINT16 id,
446                            const PSI_VALUE value, const UINT16 length);
447   extern PSX_STATUS xmlStartRvSipObjNode(char *appName, char *objName);
448   extern PSX_STATUS xmlEndRvSipObjNode(char *appName, char *objName);
449   extern PSX_STATUS xmlGetRvSipAttr(char *attrName, char* attrValue);
450   extern void  xmlSetRvSipExtAttr(FILE* file, const char *appName, const UINT16 id,
451                            const PSI_VALUE value, const UINT16 length);
452   extern PSX_STATUS xmlStartRvSipExtObjNode(char *appName, char *objName);
453   extern PSX_STATUS xmlEndRvSipExtObjNode(char *appName, char *objName);
454   extern PSX_STATUS xmlGetRvSipExtAttr(char *attrName, char* attrValue);
455   extern void  xmlSetRvSipDpAttr(FILE* file, const char *appName, const UINT16 id,
456                            const PSI_VALUE value, const UINT16 length);
457   extern PSX_STATUS xmlStartRvSipDpObjNode(char *appName, char *objName);
458   extern PSX_STATUS xmlEndRvSipDpObjNode(char *appName, char *objName);
459   extern PSX_STATUS xmlGetRvSipDpAttr(char *attrName, char* attrValue);
460   extern void  xmlSetRvSip4PAttr(FILE* file, const char *appName, const UINT16 id,
461                            const PSI_VALUE value, const UINT16 length);
462   extern PSX_STATUS xmlStartRvSip4PObjNode(char *appName, char *objName);
463   extern PSX_STATUS xmlEndRvSip4PObjNode(char *appName, char *objName);
464   extern PSX_STATUS xmlGetRvSip4PAttr(char *attrName, char* attrValue);
465 #else
466   extern void  xmlSetMgcpAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
467                               const UINT16 length);
468   extern void  xmlSetSipAttr(FILE* file, const char *appName, const UINT16 id,
469                              const PSI_VALUE value, const UINT16 length);
470   extern PSX_STATUS xmlStartMgcpObjNode(char *appName, char *objName);
471   extern PSX_STATUS xmlEndMgcpObjNode(char *appName, char *objName);
472   extern PSX_STATUS xmlGetMgcpAttr(char *attrName, char* attrValue);
473   extern PSX_STATUS xmlStartSipObjNode(char *appName, char *objName);
474   extern PSX_STATUS xmlEndSipObjNode(char *appName, char *objName);
475   extern PSX_STATUS xmlGetSipAttr(char *attrName, char* attrValue);
476 #endif
477
478 extern PSX_STATUS xmlGetEthAttr(char *attrName, char* attrValue);
479 extern PSX_STATUS xmlSetIppNode(FILE* file, const char *appName, const UINT16 id,
480                                 const PSI_VALUE value, const UINT16 length);
481 extern PSX_STATUS xmlGetIppNode(char *appName, char *objName, char *attrName, char* attrValue);
482 extern PSX_STATUS xmlGetIppAttr(char *attrName, char* attrValue);
483 extern PSX_STATUS xmlStartIppObj(char *appName, char *objName);
484 extern PSX_STATUS xmlEndIppObj(char *appName, char *objName);
485 #ifdef SUPPORT_DDNSD
486 extern void xmlSetDdnsStatusObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
487                       const UINT16 length);
488 extern PSX_STATUS xmlGetDdnsStatusAttr(char *attrName, char* attrValue);
489 extern PSX_STATUS xmlStartDdnsStatusObj(char *appName, char *objName);
490 extern PSX_STATUS xmlEndDdnsStatusObj(char *appName, char *objName);
491 #endif
492 extern PSX_STATUS xmlSetIPSecNode(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length);
493 extern PSX_STATUS xmlGetIPSecNode(char *appName, char *objName, char *attrName, char* attrValue);
494 extern PSX_STATUS xmlStartIPSecNode(char *appName, char *objName);
495 extern PSX_STATUS xmlEndIPSecNode(char *appName, char *objName);
496 extern PSX_STATUS xmlSetCertNode(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length);
497 extern PSX_STATUS xmlGetCertNode(char *appName, char *objName, char *attrName, char* attrValue);
498 extern PSX_STATUS xmlStartCertNode(char *appName, char *objName);
499 extern PSX_STATUS xmlEndCertNode(char *appName, char *objName);
500
501
502 extern char *xmlWirelessGetPhyType(void);
503 extern int xmlWirelessGetCoreRev(void);
504 extern int xmlWirelessGetBands(void);
505 extern int xmlWirelessGetValidBand(int band);
506
507 #ifdef BUILD_STATIC_DNS
508 extern void wsnXmlSetStaticDns(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
509                       const UINT16 length);
510 extern PSX_STATUS wsnXmlStartStaticDns(char *appName, char *objName);
511
512 extern PSX_STATUS wsnXmlGetStaticDns(char *attrName, char* attrValue);
513 extern PSX_STATUS wsnXmlEndStaticDns(char *appName, char *objName);
514 #endif
515
516 extern PSX_STATUS xmlGetPortMirrorCfgAttr(char *attrName, char* attrValue) ;
517 extern PSX_STATUS xmlEndPortMirrorCfgObj(char *appName, char *objName) ;
518 extern void xmlSetPortMirrorStatusAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length) ;
519 extern PSX_STATUS xmlGetPortMirrorStatusAttr(char *attrName, char* attrValue) ;
520 extern PSX_STATUS xmlStartPortMirrorStatusAttr(char *appName, char *objName) ;
521 extern PSX_STATUS xmlEndPortMirrorStatusAttr(char *appName, char *objName) ;
522 extern void xmlSetPortMirrorCfgEntryAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length) ;
523 extern PSX_STATUS xmlGetPortMirrorCfgEntryAttr(char *attrName, char* attrValue) ;
524 extern PSX_STATUS xmlEndPortMirrorCfgEntryAttrObj(char *appName, char *objName) ;
525 extern PSX_STATUS xmlSetPortMirrorObjNode (FILE* file, const char *appName, const UINT16 id, const PSI_VALUE value, const UINT16 length) ;
526 extern PSX_STATUS xmlGetPortMirrorObjNode(char *appName, char *objName, char *attrName, char* attrValue) ;
527 extern PSX_STATUS xmlStartPortMirrorObjNode(char *appName, char *objName) ;
528 extern PSX_STATUS xmlEndPortMirrorObjNode(char *appName, char *objName) ;
529 /*Wilson porting from 3.02, (05/25/2006)*/
530 extern void xmlSetHostNameObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
531                       const UINT16 length);
532 extern PSX_STATUS xmlStartHostNameObj(char *appName, char *objName);
533
534 extern PSX_STATUS xmlGetHostNameAttr(char *attrName, char* attrValue);
535 extern PSX_STATUS xmlEndHostNameObj(char *appName, char *objName);
536 #ifdef ODM_MULTI_LANG
537 extern void wsnXmlSetWebLang(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
538                       const UINT16 length);
539 extern PSX_STATUS wsnXmlStartWebLang(char *appName, char *objName);
540
541 extern PSX_STATUS wsnXmlGetWebLang(char *attrName, char* attrValue);
542 extern PSX_STATUS wsnXmlEndWebLang(char *appName, char *objName);
543 #endif
544 extern void encryptData(char *dest, char *src, int length);
545 extern void decryptData(char *dest, char *src, int length);
546 /*End Wilson porting from 3.02, (05/25/2006)*/
547 extern int base64Encode(const void *inp, int insize, char **outptr);
548 extern void base64Decode(unsigned char *dest, char *src, int *rawLength);
549 extern void xmlSetFWObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
550                       const UINT16 length);//add by wilson
551 extern PSX_STATUS xmlGetSysFWAttr(char *attrName, char* attrValue);
552 extern PSX_STATUS xmlStartSysFWObj(char *appName, char *objName);
553 extern PSX_STATUS xmlEndSysFWObj(char *appName, char *objName);
554
555 extern PSX_STATUS xmlSetDhcpMapObjNode(FILE* file, const char *appName, const UINT16 id,
556                             const PSI_VALUE value, const UINT16 length);
557 extern void xmlSetDhcpMapAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
558                       const UINT16 length);
559 extern PSX_STATUS xmlStartDhcpMapObjNode(char *appName, char *objName);
560 extern PSX_STATUS xmlEndDhcpMapObjNode(char *appName, char *objName);
561 extern PSX_STATUS xmlEndDhcpMapObj(char *appName, char *objName);
562 extern PSX_STATUS xmlGetDhcpMapObjNode(char *appName, char *objName, char *attrName, char* attrValue);
563 extern PSX_STATUS xmlGetDhcpMapAttr(char *attrName, char* attrValue);
564 extern PSX_STATUS xmlEndDhcpMapEntryObj(char *appName, char *objName);
565 extern PSX_STATUS xmlGetDhcpMapEntryAttr(char *attrName, char* attrValue);
566 //Remote Access IP List
567 extern PSX_STATUS xmlSetRemoteIpObjNode(FILE* file, const char *appName, const UINT16 id,
568                             const PSI_VALUE value, const UINT16 length);
569 extern PSX_STATUS xmlStartRemoteIpObjNode(char *appName, char *objName);
570 extern PSX_STATUS xmlGetRemoteIpObjNode(char *appName, char *objName, char *attrName, char* attrValue);
571 extern PSX_STATUS xmlEndRemoteIpObjNode(char *appName, char *objName);
572 extern void xmlSetRemoteIpAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
573                       const UINT16 length);
574 extern PSX_STATUS xmlGetRemoteIpAttr(char *attrName, char* attrValue);
575 extern PSX_STATUS xmlEndRemoteIpObj(char *appName, char *objName);
576 extern PSX_STATUS xmlGetRemoteIpEntryAttr(char *attrName, char* attrValue);
577 extern PSX_STATUS xmlEndRemoteIpEntryObj(char *appName, char *objName);
578 //end Remote Access IP List
579
580 //Paul porting from 2.21.5, 7/24/2006
581 #ifdef INCLUDE_PRINT_SERVER
582 extern void xmlSetPrinterServerObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
583                       const UINT16 length);
584 extern PSX_STATUS xmlStartPrinterServerObj(char *appName, char *objName);
585
586 extern PSX_STATUS xmlGetPrinterServerAttr(char *attrName, char* attrValue);
587 extern PSX_STATUS xmlEndPrinterServerObj(char *appName, char *objName);
588 #endif
589 //Paul porting end
590
591 #ifdef SUPPORT_ODM_VOICE_QOS
592 extern void xmlSetVoiceQoSAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
593                     const UINT16 length);
594 extern PSX_STATUS xmlStartVoiceQoSObj(char *appName, char *objName);
595 extern PSX_STATUS xmlGetVoiceQoSAttr(char *attrName, char* attrValue);
596 extern PSX_STATUS xmlEndVoiceQoSObj(char *appName, char *objName);
597 #endif
598 #ifdef BUILD_PPP_DOMAIN_SUFFIX
599 extern void xmlSetPppSuffix(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
600                       const UINT16 length);
601 extern PSX_STATUS xmlStartPppSuffix(char *appName, char *objName);
602
603 extern PSX_STATUS xmlGetPppSuffix(char *attrName, char* attrValue);
604 extern PSX_STATUS xmlEndPppSuffix(char *appName, char *objName);
605 #endif
606 #if defined(SUPPORT_SYS_ALG)
607 #if defined(SUPPORT_SYS_VPN_ALG) || defined(SUPPORT_SYS_SIP_ALG)
608 extern void xmlSetSysAlg(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
609                         const UINT16 length);
610 extern PSX_STATUS xmlGetSysAlg(char *attrName, char* attrValue);
611 extern PSX_STATUS xmlStartSysAlg(char *appName, char *objName);
612 extern PSX_STATUS xmlEndSysAlg(char *appName, char *objName);
613 #endif
614 #endif
615
616 #if defined(SUPPORT_MULTIPLE_VOIP_PROVIDERS) //Paul add, 6/13/2006
617 extern void xmlSetSipProviderAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
618                       const UINT16 length);
619 extern PSX_STATUS xmlGetSipProviderAttr(char *attrName, char* attrValue);
620 extern PSX_STATUS xmlGetSipProviderEntryAttr(char *attrName, char* attrValue);
621 extern PSX_STATUS xmlEndSipProviderObj(char *appName, char *objName);
622 extern PSX_STATUS xmlEndSipProviderEntryObj(char *appName, char *objName);
623 #endif //Paul add end
624
625 #if defined(ODM_LANG_NETGEAR)
626 extern void wsnXmlSetBlankState(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
627                       const UINT16 length);
628 extern PSX_STATUS wsnXmlStartBlankState(char *appName, char *objName);
629
630 extern PSX_STATUS wsnXmlGetBlankState(char *attrName, char* attrValue);
631 extern PSX_STATUS wsnXmlEndBlankState(char *appName, char *objName);
632 #endif
633
634 #if defined(__cplusplus)
635 }
636 #endif
637
638 #endif /* __PSIXML_H__ */