1/* 2 * Router rc control script 3 * 4 * Copyright (C) 2009, Broadcom Corporation 5 * All Rights Reserved. 6 * 7 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY 8 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM 9 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS 10 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE. 11 * 12 * $Id: rc.h 321991 2012-03-19 07:34:43Z $ 13 */ 14 15#ifndef _rc_h_ 16#define _rc_h_ 17 18#include <bcmconfig.h> 19#include <netinet/in.h> 20#ifdef __CONFIG_BUSYBOX__ 21#include <Config.h> 22#endif 23 24 25#define IFUP (IFF_UP | IFF_RUNNING | IFF_BROADCAST | IFF_MULTICAST) 26 27#define sin_addr(s) (((struct sockaddr_in *)(s))->sin_addr) 28 29#define MAX_NO_BRIDGE 1 /* Foxconn modified pling 05/16/2007, 2->1 */ 30 31#ifdef VLAN_SUPPORT 32#define C_MAX_TOKEN_SIZE 128 33#define C_MAX_VLAN_RULE 10 34typedef struct vlan_rule_t{ 35 char vlan_name[C_MAX_VLAN_RULE][C_MAX_TOKEN_SIZE]; 36 char vlan_id[6]; 37 char vlan_prio[4]; 38 char vlan_ports[10]; 39 char enable_rule[4]; 40}vlan_rule; 41#endif 42/* foxconn modified start, zacker, 01/13/2012, @iptv_igmp */ 43#if defined(CONFIG_RUSSIA_IPTV) 44#undef MAX_NO_BRIDGE 45#define MAX_NO_BRIDGE 10 /*Foxconn modified, edward zhang, 2013/07/03, change 2->10 for vlan support*/ 46 47#define NVRAM_IPTV_INTF "iptv_interfaces" 48#define NVRAM_IPTV_ENABLED "iptv_enabled" 49#define IPTV_LAN1 0x01 50#define IPTV_LAN2 0x02 51#define IPTV_LAN3 0x04 52#define IPTV_LAN4 0x08 53#define IPTV_WLAN1 0x10 54#define IPTV_WLAN2 0x20 55#if defined(R8000) 56#define IPTV_WLAN3 0x40 57#define IPTV_WLAN_GUEST1 0x80 58#define IPTV_WLAN_GUEST2 0x100 59#define IPTV_WLAN_GUEST3 0x200 60#define IPTV_WLAN_ALL (IPTV_WLAN1 | IPTV_WLAN2 | IPTV_WLAN3) //0x30 61#define IPTV_MASK (IPTV_LAN1 | IPTV_LAN2 | IPTV_LAN3 | IPTV_LAN4 | IPTV_WLAN1 | IPTV_WLAN2 | IPTV_WLAN3 | IPTV_WLAN_GUEST1 | IPTV_WLAN_GUEST2 | IPTV_WLAN_GUEST3) //0x3F 62#else 63#define IPTV_WLAN_GUEST1 0x40 64#define IPTV_WLAN_GUEST2 0x80 65#define IPTV_WLAN_ALL (IPTV_WLAN1 | IPTV_WLAN2) //0x30 66#define IPTV_MASK (IPTV_LAN1 | IPTV_LAN2 | IPTV_LAN3 | IPTV_LAN4 | IPTV_WLAN1 | IPTV_WLAN2 | IPTV_WLAN_GUEST1 | IPTV_WLAN_GUEST2) //0x3F 67#endif 68 69#define VCFG_PAGE 0xFFFF 70#define VCFG_REG 0xFD 71#define MAC_BYTE0 0x01 72#define MAC_BYTE1 0x02 73#define MAC_BYTE2 0x03 74#define MAC_BYTE3 0x04 75#define MAC_BYTE4 0x05 76#define MAC_BYTE5 0x06 77#define SET_VLAN 0x80 78#endif /* CONFIG_RUSSIA_IPTV */ 79/* foxconn modified end, zacker, 01/13/2012, @iptv_igmp */ 80/* Foxconn add start, Edward zhang, 09/14/2012, @add ARP PROTECTION support for RU SKU*/ 81#define NVRAM_ARP_ENABLED "arp_enable" 82#define C_MAX_TOKEN_SIZE 128 83#define C_MAX_RESERVED_IP 64 84/* Foxconn add end, Edward zhang, 09/14/2012, @add ARP PROTECTION support for RU SKU*/ 85#ifdef LINUX26 86#define AGLOG_MAJOR_NUM 123 87#define WPS_LED_MAJOR_NUM 253 88#endif /* LINUX26 */ 89#ifdef BCMQOS 90extern int start_iQos(void); 91extern void stop_iQos(void); 92extern int add_iQosRules(char *pcWANIF); 93extern void del_iQosRules(void); 94extern int _vstrsep(char *buf, const char *sep, ...); 95#endif /* BCMQOS */ 96 97/* udhcpc scripts */ 98extern int udhcpc_wan(int argc, char **argv); 99extern int udhcpc_lan(int argc, char **argv); 100 101/* ppp scripts */ 102extern int ipup_main(int argc, char **argv); 103extern int ipdown_main(int argc, char **argv); 104extern int ppp_ifunit(char *ifname); 105 106/* http functions */ 107extern int http_get(const char *server, char *buf, size_t count, off_t offset); 108extern int http_post(const char *server, char *buf, size_t count); 109extern int http_stats(const char *url); 110 111/* init */ 112extern int console_init(void); 113extern pid_t run_shell(int timeout, int nowait); 114extern void signal_init(void); 115extern void fatal_signal(int sig); 116 117/* interface */ 118extern int ifconfig(char *ifname, int flags, char *addr, char *netmask); 119extern int ifconfig_get(char *name, int *flags, unsigned long *addr, unsigned long *netmask); 120extern int route_add(char *name, int metric, char *dst, char *gateway, char *genmask); 121extern int route_del(char *name, int metric, char *dst, char *gateway, char *genmask); 122extern void config_loopback(void); 123extern int start_vlan(void); 124extern int stop_vlan(void); 125 126/* network */ 127extern void start_wl(void); 128extern void start_lan(void); 129extern void stop_lan(void); 130extern void lan_up(char *ifname); 131extern void lan_down(char *ifname); 132extern void start_wan(void); 133extern void stop_wan(void); 134extern void wan_up(char *ifname); 135extern void wan_down(char *ifname); 136extern int hotplug_usb_init(void); 137extern int hotplug_usb_power(int port, int boolOn); /* ports start from 1 */ 138extern int hotplug_net(void); 139extern int hotplug_usb(void); 140extern int hotplug_block(void); 141extern int wan_ifunit(char *ifname); 142extern int wan_primary_ifunit(void); 143/* foxconn wklin added start, 10/17/2006 */ 144extern void start_wlan(void); 145extern void stop_wlan(void); 146/* foxconn wklin added end, 10/17/2006 */ 147/* services */ 148extern int start_dhcpd(void); 149extern int stop_dhcpd(void); 150extern int start_dns(void); 151extern int stop_dns(void); 152extern int start_ntpc(void); 153extern int stop_ntpc(void); 154extern int start_eapd(void); 155extern int stop_eapd(void); 156extern int start_nas(void); 157extern int stop_nas(void); 158#ifdef __CONFIG_WAPI__ 159extern int start_wapid(void); 160extern int stop_wapid(void); 161#endif /* __CONFIG_WAPI__ */ 162extern int start_services(void); 163extern int stop_services(void); 164extern int start_wps(void); 165extern int stop_wps(void); 166/* 167*/ 168#ifdef __CONFIG_IPV6__ 169#define IPV6_6TO4_ENABLED 0x01 170#define IPV6_NATIVE_ENABLED 0x02 171 172extern int is_ipv6_enabled(void); 173extern int start_ipv6(void); 174extern int stop_ipv6(void); 175extern void add_ipv6_filter(char *wan_ifname); 176#endif /* __CONFIG_IPV6__ */ 177/* 178*/ 179 180/* firewall */ 181#ifdef __CONFIG_NETCONF__ 182extern int start_firewall(void); 183extern int stop_firewall(void); 184extern int start_firewall2(char *ifname); 185extern int stop_firewall2(char *ifname); 186#else 187/* 188#define start_firewall() do {} while (0) 189#define stop_firewall() do {} while (0) 190#define start_firewall2(ifname) do {} while (0) 191#define stop_firewall2(ifname) do {} while (0) 192 */ 193extern int start_firewall(void); 194extern int stop_firewall(void); 195extern int start_firewall2(char *ifname); 196extern int stop_firewall2(char *ifname); 197#endif 198 199/* routes */ 200extern int preset_wan_routes(char *ifname); 201#ifdef SAMBA_ENABLE 202extern int usb_sem_init(void); // Foxconn added pling 07/13/2009 203#endif 204#endif /* _rc_h_ */ 205