Broadcom SDK and wireless driver: another attempt to update to ver. 5.10.147.0
[tomato.git] / release / src-rt / include / emf / igs / igs_cfg.h
blobed4899a7dfcfbb9f8e482de959162b0e8348aebe
1 /*
2 * Copyright (C) 2009, Broadcom Corporation
3 * All Rights Reserved.
4 *
5 * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
6 * the contents of this file may not be disclosed to third parties, copied
7 * or duplicated in any form, in whole or in part, without the prior
8 * written permission of Broadcom Corporation.
12 #ifndef _IGS_CFG_H_
13 #define _IGS_CFG_H_
15 #define SUCCESS 0
16 #define FAILURE -1
18 #define IGSCFG_MAX_ARG_SIZE 1024
20 #define IGSCFG_CMD_BR_ADD 1
21 #define IGSCFG_CMD_BR_DEL 2
22 #define IGSCFG_CMD_BR_LIST 3
23 #define IGSCFG_CMD_IGSDB_LIST 4
24 #define IGSCFG_CMD_RTPORT_LIST 5
25 #define IGSCFG_CMD_IGS_STATS 6
27 #define IGSCFG_OPER_TYPE_GET 1
28 #define IGSCFG_OPER_TYPE_SET 2
30 #define IGSCFG_STATUS_SUCCESS 1
31 #define IGSCFG_STATUS_FAILURE 2
32 #define IGSCFG_STATUS_CMD_UNKNOWN 3
33 #define IGSCFG_STATUS_OPER_UNKNOWN 4
34 #define IGSCFG_STATUS_INVALID_IF 5
36 typedef struct igs_cfg_request
38 uint8 inst_id[16]; /* Bridge name as instance id */
39 uint32 command_id; /* Command identifier */
40 uint32 oper_type; /* Operation type: GET, SET */
41 uint32 status; /* Command status */
42 uint32 size; /* Size of the argument */
43 uint8 arg[IGSCFG_MAX_ARG_SIZE]; /* Command arguments */
44 } igs_cfg_request_t;
46 typedef struct igs_cfg_sdb_list
48 uint32 num_entries; /* Num of entries in IGSDB */
49 struct sdb_entry
51 uint32 mgrp_ip; /* Multicast group address */
52 uint32 mh_ip; /* Member IP address */
53 uint8 if_name[16]; /* Interface member is present */
54 } sdb_entry[0];
55 } igs_cfg_sdb_list_t;
57 typedef struct igs_cfg_rtport
59 uint32 mr_ip; /* IP address of mcast router */
60 uint8 if_name[16]; /* Name of the interface */
61 } igs_cfg_rtport_t;
63 typedef struct igs_cfg_rtport_list
65 uint32 num_entries; /* Number of entries in RTPORT list */
66 igs_cfg_rtport_t rtport_entry[0]; /* Interface entry data */
67 } igs_cfg_rtport_list_t;
70 * IGMP Snooping Layer Statistics
72 typedef struct igs_stats
74 uint32 igmp_packets; /* IGMP packets received */
75 uint32 igmp_queries; /* IGMP membership quries received */
76 uint32 igmp_reports; /* IGMP membership reports */
77 uint32 igmp_v2reports; /* IGMP v2 membership reports */
78 uint32 igmp_leaves; /* IGMP membership leaves */
79 uint32 igmp_not_handled; /* IGMP frames not handled */
80 uint32 igmp_mem_timeouts; /* IGMP membership timeouts */
81 uint32 igmp_frames_fwd; /* IGMP membership quries received */
82 uint32 igmp_frames_sentup; /* IGMP membership reports seen */
83 uint32 igmp_mcast_groups; /* Current total of mcast groups */
84 uint32 igmp_mcast_members; /* Current total of mcast members */
85 } igs_stats_t;
87 extern void igs_cfg_request_process(igs_cfg_request_t *cfg);
89 #endif /* _IGS_CFG_H_ */