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