1/* 2 * Copyright (c) 2014 The Linux Foundation. All rights reserved. 3 * Permission to use, copy, modify, and/or distribute this software for 4 * any purpose with or without fee is hereby granted, provided that the 5 * above copyright notice and this permission notice appear in all copies. 6 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 7 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 8 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 9 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 10 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 11 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 12 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 13 */ 14 15 16/** 17 * @defgroup dess_igmp DESS_IGMP 18 * @{ 19 */ 20#ifndef _DESS_IGMP_H_ 21#define _DESS_IGMP_H_ 22 23#ifdef __cplusplus 24extern "C" { 25#endif /* __cplusplus */ 26 27#include "fal/fal_igmp.h" 28#include "fal/fal_multi.h" 29 30 sw_error_t 31 dess_igmp_init(a_uint32_t dev_id); 32 33#ifdef IN_IGMP 34#define DESS_IGMP_INIT(rv, dev_id) \ 35 { \ 36 rv = dess_igmp_init(dev_id); \ 37 SW_RTN_ON_ERROR(rv); \ 38 } 39#else 40#define DESS_IGMP_INIT(rv, dev_id) 41#endif 42 43#ifdef HSL_STANDALONG 44 45 HSL_LOCAL sw_error_t 46 dess_port_igmps_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable); 47 48 49 HSL_LOCAL sw_error_t 50 dess_port_igmps_status_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t *enable); 51 52 53 HSL_LOCAL sw_error_t 54 dess_igmp_mld_cmd_set(a_uint32_t dev_id, fal_fwd_cmd_t cmd); 55 56 57 HSL_LOCAL sw_error_t 58 dess_igmp_mld_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd); 59 60 61 HSL_LOCAL sw_error_t 62 dess_port_igmp_mld_join_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable); 63 64 65 HSL_LOCAL sw_error_t 66 dess_port_igmp_mld_join_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable); 67 68 69 HSL_LOCAL sw_error_t 70 dess_port_igmp_mld_leave_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable); 71 72 73 HSL_LOCAL sw_error_t 74 dess_port_igmp_mld_leave_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable); 75 76 77 HSL_LOCAL sw_error_t 78 dess_igmp_mld_rp_set(a_uint32_t dev_id, fal_pbmp_t pts); 79 80 81 HSL_LOCAL sw_error_t 82 dess_igmp_mld_rp_get(a_uint32_t dev_id, fal_pbmp_t * pts); 83 84 85 HSL_LOCAL sw_error_t 86 dess_igmp_mld_entry_creat_set(a_uint32_t dev_id, a_bool_t enable); 87 88 89 HSL_LOCAL sw_error_t 90 dess_igmp_mld_entry_creat_get(a_uint32_t dev_id, a_bool_t * enable); 91 92 93 HSL_LOCAL sw_error_t 94 dess_igmp_mld_entry_static_set(a_uint32_t dev_id, a_bool_t enable); 95 96 97 HSL_LOCAL sw_error_t 98 dess_igmp_mld_entry_static_get(a_uint32_t dev_id, a_bool_t * enable); 99 100 101 HSL_LOCAL sw_error_t 102 dess_igmp_mld_entry_leaky_set(a_uint32_t dev_id, a_bool_t enable); 103 104 105 HSL_LOCAL sw_error_t 106 dess_igmp_mld_entry_leaky_get(a_uint32_t dev_id, a_bool_t * enable); 107 108 109 HSL_LOCAL sw_error_t 110 dess_igmp_mld_entry_v3_set(a_uint32_t dev_id, a_bool_t enable); 111 112 113 HSL_LOCAL sw_error_t 114 dess_igmp_mld_entry_v3_get(a_uint32_t dev_id, a_bool_t * enable); 115 116 117 HSL_LOCAL sw_error_t 118 dess_igmp_mld_entry_queue_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t queue); 119 120 121 HSL_LOCAL sw_error_t 122 dess_igmp_mld_entry_queue_get(a_uint32_t dev_id, a_bool_t * enable, a_uint32_t * queue); 123 124 125 HSL_LOCAL sw_error_t 126 dess_port_igmp_mld_learn_limit_set(a_uint32_t dev_id, fal_port_t port_id, 127 a_bool_t enable, a_uint32_t cnt); 128 129 130 HSL_LOCAL sw_error_t 131 dess_port_igmp_mld_learn_limit_get(a_uint32_t dev_id, fal_port_t port_id, 132 a_bool_t * enable, a_uint32_t * cnt); 133 134 135 HSL_LOCAL sw_error_t 136 dess_port_igmp_mld_learn_exceed_cmd_set(a_uint32_t dev_id, fal_port_t port_id, 137 fal_fwd_cmd_t cmd); 138 139 140 HSL_LOCAL sw_error_t 141 dess_port_igmp_mld_learn_exceed_cmd_get(a_uint32_t dev_id, fal_port_t port_id, 142 fal_fwd_cmd_t * cmd); 143 144 HSL_LOCAL sw_error_t 145 dess_igmp_sg_entry_set(a_uint32_t dev_id, fal_igmp_sg_entry_t * entry); 146 147 HSL_LOCAL sw_error_t 148 dess_igmp_sg_entry_clear(a_uint32_t dev_id, fal_igmp_sg_entry_t * entry); 149 150 HSL_LOCAL sw_error_t 151 dess_igmp_sg_entry_show(a_uint32_t dev_id); 152 153 HSL_LOCAL sw_error_t 154 dess_igmp_sg_entry_query(a_uint32_t dev_id, fal_igmp_sg_info_t * info); 155 156#endif 157 158#ifdef __cplusplus 159} 160#endif /* __cplusplus */ 161 162#endif /* _DESS_IGMP_H_ */ 163/** 164 * @} 165 */ 166