2 * Copyright (C) 2009, Broadcom Corporation
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.
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 */
46 typedef struct igs_cfg_sdb_list
48 uint32 num_entries
; /* Num of entries in IGSDB */
51 uint32 mgrp_ip
; /* Multicast group address */
52 uint32 mh_ip
; /* Member IP address */
53 uint8 if_name
[16]; /* Interface member is present */
57 typedef struct igs_cfg_rtport
59 uint32 mr_ip
; /* IP address of mcast router */
60 uint8 if_name
[16]; /* Name of the interface */
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 */
87 extern void igs_cfg_request_process(igs_cfg_request_t
*cfg
);
89 #endif /* _IGS_CFG_H_ */