/*****************************************************************************
-//
-// Copyright (c) 2004 Broadcom Corporation
-// All Rights Reserved
-// No portions of this material may be reproduced in any form without the
-// written permission of:
-// Broadcom Corporation
-// 16215 Alton Parkway
-// Irvine, California 92619
-// All information contained in this document is Broadcom Corporation
-// company private, proprietary, and trade secret.
-//
+# <:copyright-gpl
+# Copyright 2004 Broadcom Corp. All Rights Reserved.
+# This program is free software; you can distribute it and/or modify it
+# under the terms of the GNU General Public License (Version 2) as
+# published by the Free Software Foundation.
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
+# :>
******************************************************************************
//
// Filename: psixml.h
#include "bcmtypes.h"
#include "psidefs.h"
+#include "objectdefs.h"
#include "wldefs.h"
#include "nanoxml.h"
-#define PSX_NAME_LEN 16
+#define PSX_NAME_LEN 24
#define PSX_MAGIC_LEN 16
#define PSX_MAGIC_VALUE "-$-PSI-$02.12r01"
#define PSX_CRC32_INIT_VALUE 0xffffffff /* Initial CRC32 checksum value */
#define PSX_CRC32_GOOD_VALUE 0xdebb20e3 /* Good final CRC32 checksum value */
-#define PSX_STR_LEN 50
+#define PSX_STR_LEN 50
#define PSX_VERIFY 1
#define PSX_STORE 0
#define PSX_TABLE_TYPE 2
#define SATURDAY 0x20
#define SUNDAY 0x40
-/* important limitation: when adding the appName or objectName in either direction, it is
-important not to have appName and objName having the same prefix. The table entry search
-only compare strings up to the prefix length, case not sensitive, to cover situation
-such as APP_ID wan_vpi_vci, only wan is searched in the table. Therefore, it is not
-okay to have Lan as the appId, and objectName as lanSomethingSomething. The search
-entry would think lanSomethingSomething is an appId name. */
-
-#define APPNAME_WAN_PREFIX "wan"
-#define APPNAME_IPSRV_PREFIX "ipsrv"
-#define APPNAME_PPPSRV_PREFIX "pppsrv"
-#define APPNAME_PPP_FORMAT "pppsrv_%d_%d"
-#define APPNAME_IPSRV_ENTRY_FORMAT "ipsrv_%d_%d"
-#define OBJNAME_LAN_ENTRY_FORMAT "entry%d" /* cannot be lan, need to change */
-#define OBJNAME_PPP_ENTRY_FORMAT "ppp_conId%d"
-#define OBJNAME_IPSRV_ENTRY_FORMAT "dhcpc_conId%d"
-#define OBJNAME_WAN_ENTRY_FORMAT "entry%d" /* cannot be wan, need to change */
-#define OBJNAME_GEN_ENTRY_FORMAT "entry"
-
#define XML_PSI_START_TAG "<psitree>"
#define XML_PSI_END_TAG "</psitree>"
#define XML_PORT_RANGE_MIN 1
#define XML_PORT_RANGE_MAX 65535
-#define XML_MAX_SNMP_STR_LEN 15
+//#define XML_MAX_SNMP_STR_LEN 15
+#define XML_MAX_SNMP_STR_LEN 64//Andy exten to 64
#define XML_MAX_TOD_ENTRY 16
/* string */
#define PSX_ATTRNAME_SET 1
#define PSX_ATTRSTR_SET 2
+/* object and attribute names definitions */
+#define PSX_ATTR_STATE "state"
+
typedef enum {
PSX_STS_OK = 0,
PSX_STS_ERR_GENERAL,
PSX_STS_ERR_FIND_HDL_FNC,
PSX_STS_ERR_FATAL,
PSX_STS_ERR_MILD
+#if defined(SUPPORT_PARTCONF)
+ ,PSX_STS_RESTORE_SAME
+#endif
} PSX_STATUS;
/* internal callback statemachine */
typedef enum {
state_start,
- state_psi_begin,
+ state_psi_begin,
state_psi_end
} xml_state;
int tableIndex;
PSX_STATUS errorFlag;
int verify; /* verify=1 verifcation only, verfify=0 conversion only */
+#if defined(SUPPORT_PARTCONF)
+ int restore; /*restore=1 do restore configure*/
+#endif
} XML_PARSE_STATE, *pXML_PARSE_STATE;
typedef PSX_STATUS (*PSX_SET_OBJ_FNC) (FILE *file, const char *appName, const UINT16 id,
PSX_OBJ_FNC endObjFnc; /* end of object, do verification/storeToPSI, oresource deallocated */
} PSX_OBJ_ITEM, *PPSX_OBJ_ITEM;
-/* object and attribute names definitions */
-#define PSX_ATTR_STATE "state"
-/* system info */
-#define PSX_OBJ_SYS_USER_NAME "sysUserName"
-#define PSX_OBJ_SYS_PASSWORD "sysPassword"
-#define PSX_OBJ_SPT_USER_NAME "sptUserName"
-#define PSX_OBJ_SPT_PASSWORD "sptPassword"
-#define PSX_OBJ_USR_USER_NAME "usrUserName"
-#define PSX_OBJ_USR_PASSWORD "usrPassword"
-#define PSX_OBJ_DEF_GATEWAY "defaultGateway"
-#define PSX_OBJ_DNS "dns"
-#define PSX_OBJ_SYSLOG "sysLog"
-#define PSX_OBJ_SNMP "snmp"
-#define PSX_OBJ_PROTOCOL "protocol"
-#define PSX_OBJ_ETHCFG "ethCfg"
-#define PSX_OBJ_MGCP_CFG "mgcpCfg"
-#define PSX_OBJ_SIP_CFG "sipCfg"
-
-
-#define PSX_ATTR_DNS_PRIMARY "primary"
-#define PSX_ATTR_DNS_SECONDARY "secondary"
-#define PSX_ATTR_DNS_DYNAMIC "dynamic"
-
-#define PSX_ATTR_SYSLOG_DISPLAY_LEVEL "displayLevel"
-#define PSX_ATTR_SYSLOG_LOG_LEVEL "logLevel"
-#define PSX_ATTR_SYSLOG_OPTION "option"
-#define PSX_ATTR_SYSLOG_SERVER_IP "serverIP"
-#define PSX_ATTR_SYSLOG_SERVER_PORT "serverPort"
-
-#define PSX_ATTR_PMAP_IFC_NAME "pmapIfName"
-#define PSX_ATTR_PMAP_IFC_STATUS "pmapIfcStatus"
-
-#define PSX_ATTR_VOICE_MGCP_TAG "mgcpCfg"
-#define PSX_ATTR_VOICE_MGCP_CA_ADDR "caAddr"
-#define PSX_ATTR_VOICE_MGCP_GW_NAME "gwName"
-#define PSX_ATTR_VOICE_MGCP_IF_NAME "ifName"
-#define PSX_ATTR_VOICE_MGCP_PREF_CODEC "prefCodec"
-#define PSX_ATTR_VOICE_SIP_TAG "sipCfg"
-#define PSX_ATTR_VOICE_SIP_PROXY_ADDR "proxyAddr"
-#define PSX_ATTR_VOICE_SIP_PROXY_PORT "proxyPort"
-#define PSX_ATTR_VOICE_SIP_REGISTRAR_ADDR "registrarAddr"
-#define PSX_ATTR_VOICE_SIP_REGISTRAR_PORT "registrarPort"
-#define PSX_ATTR_VOICE_SIP_LOG_ADDR "logAddr"
-#define PSX_ATTR_VOICE_SIP_LOG_PORT "logPort"
-#define PSX_ATTR_VOICE_SIP_EXT1 "ext1"
-#define PSX_ATTR_VOICE_SIP_PASSWORD1 "password1"
-#define PSX_ATTR_VOICE_SIP_EXT2 "ext2"
-#define PSX_ATTR_VOICE_SIP_PASSWORD2 "password2"
-#define PSX_ATTR_VOICE_SIP_EXT3 "ext3"
-#define PSX_ATTR_VOICE_SIP_PASSWORD3 "password3"
-#define PSX_ATTR_VOICE_SIP_EXT4 "ext4"
-#define PSX_ATTR_VOICE_SIP_PASSWORD4 "password4"
-#define PSX_ATTR_VOICE_SIP_IF_NAME "ifName"
-
-#define PSX_ATTR_ETH_CFG_SPEED "speed"
-#define PSX_ATTR_ETH_CFG_TYPE "type"
-#define PSX_ATTR_ETH_CFG_MTU "MTU"
-#define PSX_ATTR_IPP_MAKE "make"
-#define PSX_ATTR_IPP_DEV "dev"
-#define PSX_ATTR_IPP_NAME "name"
#if defined(__cplusplus)
extern "C" {
#endif
extern PSX_STATUS xmlSetDdnsNode(FILE* file, const char *appName, const UINT16 id,
const PSI_VALUE value, const UINT16 length);
+extern void xmlSetTr69cAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern void xmlSetMgmtLockAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
extern void xmlSetStrObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
const UINT16 length);
extern void xmlSetSysLogAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
const UINT16 length);
extern void xmlSetEthAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
const UINT16 length);
+#if defined(SUPPORT_PARTCONF)
+extern PSX_STATUS xmlParse(char *xmlBuffer, int xmlSize, int verify, int restore);
+#else
extern PSX_STATUS xmlParse(char *xmlBuffer, int xmlSize, int verify);
+#endif
extern void xmlTagBegin(nxml_t handle, const char *tag_name, unsigned len);
extern void xmlTagEnd(nxml_t handle, const char *tag_name, unsigned len);
extern void xmlAttrBegin(nxml_t handle, const char *tag_name, unsigned len);
extern PSX_STATUS xmlGetSysPasswordAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlStartSysUserNamePasswordObj(char *appName, char *objName);
extern PSX_STATUS xmlEndSysUserNamePasswordObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetTr69cAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartTr69cObj(char *appName, char *objName);
+extern PSX_STATUS xmlEndTr69cObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetMgmtLockAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartMgmtLockObj(char *appName, char *objName);
+extern PSX_STATUS xmlEndMgmtLockObj(char *appName, char *objName);
extern PSX_STATUS xmlGetDftGwAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlStartDftGwObj(char *appName, char *objName);
extern PSX_STATUS xmlEndDftGwObj(char *appName, char *objName);
extern PSX_STATUS xmlGetMacFilterEntryAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlEndMacFilterEntryObj(char *appName, char *objName);
extern PSX_STATUS xmlGetQosClsAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartQosClsEntryObj(char *appName, char *objName);
extern PSX_STATUS xmlEndQosClsObj(char *appName, char *objName);
extern PSX_STATUS xmlGetQosClsEntryAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlEndQosClsEntryObj(char *appName, char *objName);
extern PSX_STATUS xmlEndWirelessMacFilterEntryObj(char *appName, char *objName);
extern PSX_STATUS xmlGetWirelessMacFilterAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlEndWirelessMacFilterObj(char *appName, char *objName);
+extern void xmlSetWirelessMssidVarsAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length);
+extern PSX_STATUS xmlGetWirelessMssidVarsAttr(char * attrName, char * attrValue);
+extern PSX_STATUS xmlEndWirelessMssidVarsObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetWirelessMssidVarsEntryAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndWirelessMssidVarsEntryObj(char *appName, char *objName);
extern PSX_STATUS xmlGetRouteObjNode(char *appName, char *objName, char *attrName, char* attrValue);
extern PSX_STATUS xmlStartRouteObjNode(char *appName, char *objName);
extern PSX_STATUS xmlEndRouteObjNode(char *appName, char *objName);
extern PSX_STATUS xmlEndToDObj(char *appName, char *objName);
extern PSX_STATUS xmlGetToDEntryAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlEndToDEntryObj(char *appName, char *objName);
+
extern PSX_STATUS xmlSetVoiceNode(FILE* file, const char *appName, const UINT16 id,
const PSI_VALUE value, const UINT16 length);
extern PSX_STATUS xmlGetVoiceNode(char *appName, char *objName, char *attrName, char* attrValue);
extern PSX_STATUS xmlStartVoiceNode(char *appName, char *objName);
extern PSX_STATUS xmlEndVoiceNode(char *appName, char *objName);
-extern void xmlSetMgcpAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
- const UINT16 length);
-extern void xmlSetSipAttr(FILE* file, const char *appName, const UINT16 id,
+#if defined(IP_RV_SIP)
+ extern void xmlSetRvSipAttr(FILE* file, const char *appName, const UINT16 id,
+ const PSI_VALUE value, const UINT16 length);
+ extern PSX_STATUS xmlStartRvSipObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlEndRvSipObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlGetRvSipAttr(char *attrName, char* attrValue);
+ extern void xmlSetRvSipExtAttr(FILE* file, const char *appName, const UINT16 id,
const PSI_VALUE value, const UINT16 length);
-extern PSX_STATUS xmlStartMgcpObjNode(char *appName, char *objName);
-extern PSX_STATUS xmlEndMgcpObjNode(char *appName, char *objName);
-extern PSX_STATUS xmlGetMgcpAttr(char *attrName, char* attrValue);
-extern PSX_STATUS xmlStartSipObjNode(char *appName, char *objName);
-extern PSX_STATUS xmlEndSipObjNode(char *appName, char *objName);
-extern PSX_STATUS xmlGetSipAttr(char *attrName, char* attrValue);
+ extern PSX_STATUS xmlStartRvSipExtObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlEndRvSipExtObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlGetRvSipExtAttr(char *attrName, char* attrValue);
+ extern void xmlSetRvSipDpAttr(FILE* file, const char *appName, const UINT16 id,
+ const PSI_VALUE value, const UINT16 length);
+ extern PSX_STATUS xmlStartRvSipDpObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlEndRvSipDpObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlGetRvSipDpAttr(char *attrName, char* attrValue);
+ extern void xmlSetRvSip4PAttr(FILE* file, const char *appName, const UINT16 id,
+ const PSI_VALUE value, const UINT16 length);
+ extern PSX_STATUS xmlStartRvSip4PObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlEndRvSip4PObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlGetRvSip4PAttr(char *attrName, char* attrValue);
+#else
+ extern void xmlSetMgcpAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+ extern void xmlSetSipAttr(FILE* file, const char *appName, const UINT16 id,
+ const PSI_VALUE value, const UINT16 length);
+ extern PSX_STATUS xmlStartMgcpObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlEndMgcpObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlGetMgcpAttr(char *attrName, char* attrValue);
+ extern PSX_STATUS xmlStartSipObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlEndSipObjNode(char *appName, char *objName);
+ extern PSX_STATUS xmlGetSipAttr(char *attrName, char* attrValue);
+#endif
extern PSX_STATUS xmlGetEthAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlSetIppNode(FILE* file, const char *appName, const UINT16 id,
extern PSX_STATUS xmlGetIppAttr(char *attrName, char* attrValue);
extern PSX_STATUS xmlStartIppObj(char *appName, char *objName);
extern PSX_STATUS xmlEndIppObj(char *appName, char *objName);
+#ifdef SUPPORT_DDNSD
+extern void xmlSetDdnsStatusObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlGetDdnsStatusAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartDdnsStatusObj(char *appName, char *objName);
+extern PSX_STATUS xmlEndDdnsStatusObj(char *appName, char *objName);
+#endif
+extern PSX_STATUS xmlSetIPSecNode(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length);
+extern PSX_STATUS xmlGetIPSecNode(char *appName, char *objName, char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartIPSecNode(char *appName, char *objName);
+extern PSX_STATUS xmlEndIPSecNode(char *appName, char *objName);
+extern PSX_STATUS xmlSetCertNode(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length);
+extern PSX_STATUS xmlGetCertNode(char *appName, char *objName, char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartCertNode(char *appName, char *objName);
+extern PSX_STATUS xmlEndCertNode(char *appName, char *objName);
+
+
+extern char *xmlWirelessGetPhyType(void);
+extern int xmlWirelessGetCoreRev(void);
+extern int xmlWirelessGetBands(void);
+extern int xmlWirelessGetValidBand(int band);
+
+#ifdef BUILD_STATIC_DNS
+extern void wsnXmlSetStaticDns(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS wsnXmlStartStaticDns(char *appName, char *objName);
+
+extern PSX_STATUS wsnXmlGetStaticDns(char *attrName, char* attrValue);
+extern PSX_STATUS wsnXmlEndStaticDns(char *appName, char *objName);
+#endif
+
+extern PSX_STATUS xmlGetPortMirrorCfgAttr(char *attrName, char* attrValue) ;
+extern PSX_STATUS xmlEndPortMirrorCfgObj(char *appName, char *objName) ;
+extern void xmlSetPortMirrorStatusAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length) ;
+extern PSX_STATUS xmlGetPortMirrorStatusAttr(char *attrName, char* attrValue) ;
+extern PSX_STATUS xmlStartPortMirrorStatusAttr(char *appName, char *objName) ;
+extern PSX_STATUS xmlEndPortMirrorStatusAttr(char *appName, char *objName) ;
+extern void xmlSetPortMirrorCfgEntryAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value, const UINT16 length) ;
+extern PSX_STATUS xmlGetPortMirrorCfgEntryAttr(char *attrName, char* attrValue) ;
+extern PSX_STATUS xmlEndPortMirrorCfgEntryAttrObj(char *appName, char *objName) ;
+extern PSX_STATUS xmlSetPortMirrorObjNode (FILE* file, const char *appName, const UINT16 id, const PSI_VALUE value, const UINT16 length) ;
+extern PSX_STATUS xmlGetPortMirrorObjNode(char *appName, char *objName, char *attrName, char* attrValue) ;
+extern PSX_STATUS xmlStartPortMirrorObjNode(char *appName, char *objName) ;
+extern PSX_STATUS xmlEndPortMirrorObjNode(char *appName, char *objName) ;
+/*Wilson porting from 3.02, (05/25/2006)*/
+extern void xmlSetHostNameObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlStartHostNameObj(char *appName, char *objName);
+
+extern PSX_STATUS xmlGetHostNameAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndHostNameObj(char *appName, char *objName);
+#ifdef ODM_MULTI_LANG
+extern void wsnXmlSetWebLang(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS wsnXmlStartWebLang(char *appName, char *objName);
+
+extern PSX_STATUS wsnXmlGetWebLang(char *attrName, char* attrValue);
+extern PSX_STATUS wsnXmlEndWebLang(char *appName, char *objName);
+#endif
+extern void encryptData(char *dest, char *src, int length);
+extern void decryptData(char *dest, char *src, int length);
+/*End Wilson porting from 3.02, (05/25/2006)*/
+extern int base64Encode(const void *inp, int insize, char **outptr);
+extern void base64Decode(unsigned char *dest, char *src, int *rawLength);
+extern void xmlSetFWObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);//add by wilson
+extern PSX_STATUS xmlGetSysFWAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartSysFWObj(char *appName, char *objName);
+extern PSX_STATUS xmlEndSysFWObj(char *appName, char *objName);
+
+extern PSX_STATUS xmlSetDhcpMapObjNode(FILE* file, const char *appName, const UINT16 id,
+ const PSI_VALUE value, const UINT16 length);
+extern void xmlSetDhcpMapAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlStartDhcpMapObjNode(char *appName, char *objName);
+extern PSX_STATUS xmlEndDhcpMapObjNode(char *appName, char *objName);
+extern PSX_STATUS xmlEndDhcpMapObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetDhcpMapObjNode(char *appName, char *objName, char *attrName, char* attrValue);
+extern PSX_STATUS xmlGetDhcpMapAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndDhcpMapEntryObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetDhcpMapEntryAttr(char *attrName, char* attrValue);
+//Remote Access IP List
+extern PSX_STATUS xmlSetRemoteIpObjNode(FILE* file, const char *appName, const UINT16 id,
+ const PSI_VALUE value, const UINT16 length);
+extern PSX_STATUS xmlStartRemoteIpObjNode(char *appName, char *objName);
+extern PSX_STATUS xmlGetRemoteIpObjNode(char *appName, char *objName, char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndRemoteIpObjNode(char *appName, char *objName);
+extern void xmlSetRemoteIpAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlGetRemoteIpAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndRemoteIpObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetRemoteIpEntryAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndRemoteIpEntryObj(char *appName, char *objName);
+//end Remote Access IP List
+
+//Paul porting from 2.21.5, 7/24/2006
+#ifdef INCLUDE_PRINT_SERVER
+extern void xmlSetPrinterServerObjAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlStartPrinterServerObj(char *appName, char *objName);
+
+extern PSX_STATUS xmlGetPrinterServerAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndPrinterServerObj(char *appName, char *objName);
+#endif
+//Paul porting end
+
+#ifdef SUPPORT_ODM_VOICE_QOS
+extern void xmlSetVoiceQoSAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlStartVoiceQoSObj(char *appName, char *objName);
+extern PSX_STATUS xmlGetVoiceQoSAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndVoiceQoSObj(char *appName, char *objName);
+#endif
+#ifdef BUILD_PPP_DOMAIN_SUFFIX
+extern void xmlSetPppSuffix(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlStartPppSuffix(char *appName, char *objName);
+
+extern PSX_STATUS xmlGetPppSuffix(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndPppSuffix(char *appName, char *objName);
+#endif
+#if defined(SUPPORT_SYS_ALG)
+#if defined(SUPPORT_SYS_VPN_ALG) || defined(SUPPORT_SYS_SIP_ALG)
+extern void xmlSetSysAlg(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlGetSysAlg(char *attrName, char* attrValue);
+extern PSX_STATUS xmlStartSysAlg(char *appName, char *objName);
+extern PSX_STATUS xmlEndSysAlg(char *appName, char *objName);
+#endif
+#endif
+
+#if defined(SUPPORT_MULTIPLE_VOIP_PROVIDERS) //Paul add, 6/13/2006
+extern void xmlSetSipProviderAttr(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS xmlGetSipProviderAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlGetSipProviderEntryAttr(char *attrName, char* attrValue);
+extern PSX_STATUS xmlEndSipProviderObj(char *appName, char *objName);
+extern PSX_STATUS xmlEndSipProviderEntryObj(char *appName, char *objName);
+#endif //Paul add end
+
+#if defined(ODM_LANG_NETGEAR)
+extern void wsnXmlSetBlankState(FILE *file, const char *name, const UINT16 id, const PSI_VALUE value,
+ const UINT16 length);
+extern PSX_STATUS wsnXmlStartBlankState(char *appName, char *objName);
+
+extern PSX_STATUS wsnXmlGetBlankState(char *attrName, char* attrValue);
+extern PSX_STATUS wsnXmlEndBlankState(char *appName, char *objName);
+#endif
+
#if defined(__cplusplus)
}
#endif