1/*
2 * Copyright 2004, Broadcom Corporation
3 * All Rights Reserved.
4 *
5 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
6 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
7 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
8 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
9 *
10 * $Id: igd_desc.c,v 1.1.1.1 2008/10/15 03:31:34 james26_jang Exp $
11 */
12
13#include "upnp_dbg.h"
14#include "upnp_osl.h"
15#include "upnp.h"
16
17
18#undef INCLUDE_ETHERLINK
19#undef INCLUDE_CABLELINKCONFIG
20#undef INCLUDE_LANDEVICE
21#undef INCLUDE_LANHOSTCONFIG
22#undef INCLUDE_PPPCONNECTION
23
24#define INCLUDE_LAYER3
25#define INCLUDE_IPCONNECTION
26#define INCLUDE_PPPCONNECTION
27
28
29
30extern int WANDevice_Init(PDevice pdev, device_state_t state, va_list ap);
31extern int LANDevice_Init(PDevice pdev, device_state_t state, va_list ap);
32extern int IGDevice_Init(PDevice igdev, device_state_t state);
33
34
35/* Global structure for storing the state table for this device */
36
37extern ServiceTemplate Template_Layer3Forwarding;
38extern ServiceTemplate Template_WANCommonInterfaceConfig;
39extern ServiceTemplate Template_WANIPConnection;
40extern ServiceTemplate Template_WANCableLinkConfig;
41extern ServiceTemplate Template_WANEthernetLinkConfig;
42extern ServiceTemplate Template_WANPPPConnection;
43
44extern ServiceTemplate Template_LANHostConfigManagement;
45
46PServiceTemplate svcs_igd[]           = {
47#if defined(INCLUDE_OSINFO)
48    &Template_OSInfo,
49#endif
50#ifdef INCLUDE_LAYER3
51    &Template_Layer3Forwarding
52#endif
53};
54
55PServiceTemplate svcs_wandevice[]     = {
56     &Template_WANCommonInterfaceConfig
57};
58
59PServiceTemplate svcs_wanconnection[] = {
60#if defined(INCLUDE_ETHERLINK)
61     &Template_WANEthernetLinkConfig,
62#endif
63#if defined(INCLUDE_PPPCONNECTION)
64     &Template_WANPPPConnection,
65#endif
66#if defined(INCLUDE_IPCONNECTION)
67     &Template_WANIPConnection,
68#endif
69#if defined(INCLUDE_CABLELINKCONFIG)
70     &Template_WANCableLinkConfig,
71#endif
72};
73
74PServiceTemplate svcs_landevice[] = {
75#if defined(INCLUDE_LANHOSTCONFIG)
76     &Template_LANHostConfigManagement,
77#endif
78};
79
80DeviceTemplate subdevs_wandevice[] = {
81    {
82	"urn:schemas-upnp-org:device:WANConnectionDevice:1",
83	"WANCONNECTION",
84	NULL, /* PFDEVINIT */
85	NULL, /* PFDEVXML */
86	ARRAYSIZE(svcs_wanconnection), svcs_wanconnection
87    }
88};
89
90DeviceTemplate LANDeviceTemplate = {
91	"urn:schemas-upnp-org:device:LANDevice:1",
92	"LANDEVICEUDN",
93	LANDevice_Init, 	/* PFDEVINIT */
94	NULL, /* PFDEVXML */
95	ARRAYSIZE(svcs_landevice), svcs_landevice
96};
97
98DeviceTemplate WANDeviceTemplate = {
99    "urn:schemas-upnp-org:device:WANDevice:1",
100    "WANDEVICEUDN",
101    WANDevice_Init, 	/* PFDEVINIT */
102    NULL, 		/* PFDEVXML */
103    ARRAYSIZE(svcs_wandevice), svcs_wandevice,
104    ARRAYSIZE(subdevs_wandevice), subdevs_wandevice
105};
106
107extern void igd_xml(PDevice pdev, UFILE *up);
108
109DeviceTemplate IGDeviceTemplate = {
110    "urn:schemas-upnp-org:device:InternetGatewayDevice:1",
111    "ROOTUDN",
112    IGDevice_Init,  	/* PFDEVINIT */
113    NULL,  		/* PFDEVXML */
114    ARRAYSIZE(svcs_igd), svcs_igd
115};
116
117
118
119
120
121