mod.h (11091B)
1 /* 2 * DO NOT EDIT THIS FILE! 3 * This file is auto-generated. 4 * Edits to this file will be lost when it is regenerated. 5 * 6 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 7 * 8 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 9 */ 10 11 #ifndef BCMINT_LTSW_MBCM_MOD_H 12 #define BCMINT_LTSW_MBCM_MOD_H 13 14 #include <bcm/cosq.h> 15 16 #include <bcm_int/ltsw/mod.h> 17 18 #include <sal/sal_types.h> 19 20 /*! 21 * \brief Init Cosq mirror-on-drop module. 22 * 23 * \param [in] unit Unit Number. 24 * 25 * \retval SHR_E_NONE No errors. 26 * \retval !SHR_E_NONE Failure. 27 */ 28 typedef int (*cosq_mod_init_f)(int unit); 29 30 /*! 31 * \brief detach Cosq mirror-on-drop module. 32 * 33 * \param [in] unit Unit Number. 34 * 35 * \retval SHR_E_NONE No errors. 36 * \retval !SHR_E_NONE Failure. 37 */ 38 typedef int (*cosq_mod_detach_f)(int unit); 39 40 /*! 41 * \brief Set mirror-on-drop control configuration. 42 * 43 * \param [in] unit Unit Number. 44 * \param [in] control Cosq mirror-on-drop control structure. 45 * 46 * \retval SHR_E_NONE No errors. 47 * \retval !SHR_E_NONE Failure. 48 */ 49 typedef int (*cosq_mod_control_set_f)( 50 int unit, 51 bcm_cosq_mod_control_t *control); 52 53 /*! 54 * \brief Get mirror-on-drop control configuration. 55 * 56 * \param [in] unit Unit Number. 57 * \param [out] control Cosq mirror-on-drop control structure. 58 * 59 * \retval SHR_E_NONE No errors. 60 * \retval !SHR_E_NONE Failure. 61 */ 62 typedef int (*cosq_mod_control_get_f)( 63 int unit, 64 bcm_cosq_mod_control_t *control); 65 66 /*! 67 * \brief Create a mirror-on-drop profile. 68 * 69 * \param [in] unit Unit Number. 70 * \param [in] options Options flags. 71 * \param [out] profile_id Profile id. 72 * 73 * \retval SHR_E_NONE No errors. 74 * \retval !SHR_E_NONE Failure. 75 */ 76 typedef int (*cosq_mod_profile_create_f)( 77 int unit, 78 uint32_t options, 79 int *profile_id); 80 81 /*! 82 * \brief Destroy a mirror-on-drop profile. 83 * 84 * \param [in] unit Unit Number. 85 * \param [in] profile_id Profile id. 86 * 87 * \retval SHR_E_NONE No errors. 88 * \retval !SHR_E_NONE Failure. 89 */ 90 typedef int (*cosq_mod_profile_destroy_f)( 91 int unit, 92 int profile_id); 93 94 /*! 95 * \brief Set a mirror-on-drop profile. 96 * 97 * \param [in] unit Unit Number. 98 * \param [in] profile_id Profile id. 99 * \param [in] profile Mirror-on-drop profile structure. 100 * 101 * \retval SHR_E_NONE No errors. 102 * \retval !SHR_E_NONE Failure. 103 */ 104 typedef int (*cosq_mod_profile_set_f)( 105 int unit, 106 int profile_id, 107 bcm_cosq_mod_profile_t *profile); 108 109 /*! 110 * \brief Get a mirror-on-drop profile. 111 * 112 * \param [in] unit Unit Number. 113 * \param [in] profile_id Profile id. 114 * \param [out] profile Mirror-on-drop profile structure. 115 * 116 * \retval SHR_E_NONE No errors. 117 * \retval !SHR_E_NONE Failure. 118 */ 119 typedef int (*cosq_mod_profile_get_f)( 120 int unit, 121 int profile_id, 122 bcm_cosq_mod_profile_t *profile); 123 124 /*! 125 * \brief Add mirror-on-drop destination. 126 * 127 * \param [in] unit Unit Number. 128 * \param [in] mod_dest Mirror-on-drop destination. 129 * 130 * \retval SHR_E_NONE No errors. 131 * \retval !SHR_E_NONE Failure. 132 */ 133 typedef int (*cosq_mod_dest_add_f)( 134 int unit, 135 bcmi_ltsw_cosq_mod_dest_t *mod_dest); 136 137 /*! 138 * \brief Delete mirror-on-drop destination. 139 * 140 * \param [in] unit Unit Number. 141 * \param [in] mod_dest Mirror-on-drop destination. 142 * 143 * \retval SHR_E_NONE No errors. 144 * \retval !SHR_E_NONE Failure. 145 */ 146 typedef int (*cosq_mod_dest_delete_f)( 147 int unit, 148 bcmi_ltsw_cosq_mod_dest_t *mod_dest); 149 150 /*! 151 * \brief Get mirror-on-drop destination. 152 * 153 * \param [in] unit Unit Number. 154 * \param [out] mod_dest Mirror-on-drop destination. 155 * 156 * \retval SHR_E_NONE No errors. 157 * \retval !SHR_E_NONE Failure. 158 */ 159 typedef int (*cosq_mod_dest_get_f)( 160 int unit, 161 bcmi_ltsw_cosq_mod_dest_t *mod_dest); 162 163 /*! 164 * \brief Get mirror instance id. 165 * 166 * \param [in] unit Unit Number. 167 * \param [out] instance_id Mirror instance id. -1 if not found. 168 * 169 * \retval SHR_E_NONE No errors. 170 * \retval !SHR_E_NONE Failure. 171 */ 172 typedef int (*cosq_mod_instance_id_get_f)( 173 int unit, 174 int *instance_id); 175 176 /*! 177 * \brief Get mirror-on-drop statistics. 178 * 179 * \param [in] unit Unit Number. 180 * \param [in] id Statistics object id. 181 * \param [in] stat Cosq mirror-on-drop Statistics type. 182 * \param [out] value Statistics value. 183 * 184 * \retval SHR_E_NONE No errors. 185 * \retval !SHR_E_NONE Failure. 186 */ 187 typedef int (*cosq_mod_stat_get_f)( 188 int unit, 189 bcm_cosq_object_id_t *id, 190 bcm_cosq_mod_stat_t stat, 191 uint64_t *value); 192 193 /*! 194 * \brief Set mirror-on-drop statistics counter. 195 * 196 * \param [in] unit Unit Number. 197 * \param [in] id Statistics object id. 198 * \param [in] stat Cosq mirror-on-drop Statistics type 199 * \param [in] value Statistics value. 200 * 201 * \retval SHR_E_NONE No errors. 202 * \retval !SHR_E_NONE Failure. 203 */ 204 typedef int (*cosq_mod_stat_set_f)( 205 int unit, 206 bcm_cosq_object_id_t *id, 207 bcm_cosq_mod_stat_t stat, 208 uint64_t value); 209 210 /*! 211 * \brief Cosq_mod driver structure. 212 */ 213 typedef struct mbcm_ltsw_cosq_mod_drv_s { 214 215 /*! Init Cosq mirror-on-drop module. */ 216 cosq_mod_init_f cosq_mod_init; 217 218 /*! detach Cosq mirror-on-drop module. */ 219 cosq_mod_detach_f cosq_mod_detach; 220 221 /*! Set mirror-on-drop control configuration. */ 222 cosq_mod_control_set_f cosq_mod_control_set; 223 224 /*! Get mirror-on-drop control configuration. */ 225 cosq_mod_control_get_f cosq_mod_control_get; 226 227 /*! Create a mirror-on-drop profile. */ 228 cosq_mod_profile_create_f cosq_mod_profile_create; 229 230 /*! Destroy a mirror-on-drop profile. */ 231 cosq_mod_profile_destroy_f cosq_mod_profile_destroy; 232 233 /*! Set a mirror-on-drop profile. */ 234 cosq_mod_profile_set_f cosq_mod_profile_set; 235 236 /*! Get a mirror-on-drop profile. */ 237 cosq_mod_profile_get_f cosq_mod_profile_get; 238 239 /*! Add mirror-on-drop destination. */ 240 cosq_mod_dest_add_f cosq_mod_dest_add; 241 242 /*! Delete mirror-on-drop destination. */ 243 cosq_mod_dest_delete_f cosq_mod_dest_delete; 244 245 /*! Get mirror-on-drop destination. */ 246 cosq_mod_dest_get_f cosq_mod_dest_get; 247 248 /*! Get mirror instance id. */ 249 cosq_mod_instance_id_get_f cosq_mod_instance_id_get; 250 251 /*! Get mirror-on-drop statistics. */ 252 cosq_mod_stat_get_f cosq_mod_stat_get; 253 254 /*! Set mirror-on-drop statistics counter. */ 255 cosq_mod_stat_set_f cosq_mod_stat_set; 256 257 } mbcm_ltsw_cosq_mod_drv_t; 258 259 /*! 260 * \brief Set the COSQ_MOD driver of the device. 261 * 262 * \param [in] unit Unit Number. 263 * \param [in] drv Cosq_mod driver to set. 264 * 265 * \retval SHR_E_NONE No errors. 266 * \retval !SHR_E_NONE Failure. 267 */ 268 extern int 269 mbcm_ltsw_cosq_mod_drv_set( 270 int unit, 271 mbcm_ltsw_cosq_mod_drv_t *drv); 272 273 /*! 274 * \brief Init Cosq mirror-on-drop module. 275 * 276 * \param [in] unit Unit Number. 277 * 278 * \retval SHR_E_NONE No errors. 279 * \retval !SHR_E_NONE Failure. 280 */ 281 extern int 282 mbcm_ltsw_cosq_mod_init(int unit); 283 284 /*! 285 * \brief detach Cosq mirror-on-drop module. 286 * 287 * \param [in] unit Unit Number. 288 * 289 * \retval SHR_E_NONE No errors. 290 * \retval !SHR_E_NONE Failure. 291 */ 292 extern int 293 mbcm_ltsw_cosq_mod_detach(int unit); 294 295 /*! 296 * \brief Set mirror-on-drop control configuration. 297 * 298 * \param [in] unit Unit Number. 299 * \param [in] control Cosq mirror-on-drop control structure. 300 * 301 * \retval SHR_E_NONE No errors. 302 * \retval !SHR_E_NONE Failure. 303 */ 304 extern int 305 mbcm_ltsw_cosq_mod_control_set( 306 int unit, 307 bcm_cosq_mod_control_t *control); 308 309 /*! 310 * \brief Get mirror-on-drop control configuration. 311 * 312 * \param [in] unit Unit Number. 313 * \param [out] control Cosq mirror-on-drop control structure. 314 * 315 * \retval SHR_E_NONE No errors. 316 * \retval !SHR_E_NONE Failure. 317 */ 318 extern int 319 mbcm_ltsw_cosq_mod_control_get( 320 int unit, 321 bcm_cosq_mod_control_t *control); 322 323 /*! 324 * \brief Create a mirror-on-drop profile. 325 * 326 * \param [in] unit Unit Number. 327 * \param [in] options Options flags. 328 * \param [out] profile_id Profile id. 329 * 330 * \retval SHR_E_NONE No errors. 331 * \retval !SHR_E_NONE Failure. 332 */ 333 extern int 334 mbcm_ltsw_cosq_mod_profile_create( 335 int unit, 336 uint32_t options, 337 int *profile_id); 338 339 /*! 340 * \brief Destroy a mirror-on-drop profile. 341 * 342 * \param [in] unit Unit Number. 343 * \param [in] profile_id Profile id. 344 * 345 * \retval SHR_E_NONE No errors. 346 * \retval !SHR_E_NONE Failure. 347 */ 348 extern int 349 mbcm_ltsw_cosq_mod_profile_destroy( 350 int unit, 351 int profile_id); 352 353 /*! 354 * \brief Set a mirror-on-drop profile. 355 * 356 * \param [in] unit Unit Number. 357 * \param [in] profile_id Profile id. 358 * \param [in] profile Mirror-on-drop profile structure. 359 * 360 * \retval SHR_E_NONE No errors. 361 * \retval !SHR_E_NONE Failure. 362 */ 363 extern int 364 mbcm_ltsw_cosq_mod_profile_set( 365 int unit, 366 int profile_id, 367 bcm_cosq_mod_profile_t *profile); 368 369 /*! 370 * \brief Get a mirror-on-drop profile. 371 * 372 * \param [in] unit Unit Number. 373 * \param [in] profile_id Profile id. 374 * \param [out] profile Mirror-on-drop profile structure. 375 * 376 * \retval SHR_E_NONE No errors. 377 * \retval !SHR_E_NONE Failure. 378 */ 379 extern int 380 mbcm_ltsw_cosq_mod_profile_get( 381 int unit, 382 int profile_id, 383 bcm_cosq_mod_profile_t *profile); 384 385 /*! 386 * \brief Add mirror-on-drop destination. 387 * 388 * \param [in] unit Unit Number. 389 * \param [in] mod_dest Mirror-on-drop destination. 390 * 391 * \retval SHR_E_NONE No errors. 392 * \retval !SHR_E_NONE Failure. 393 */ 394 extern int 395 mbcm_ltsw_cosq_mod_dest_add( 396 int unit, 397 bcmi_ltsw_cosq_mod_dest_t *mod_dest); 398 399 /*! 400 * \brief Delete mirror-on-drop destination. 401 * 402 * \param [in] unit Unit Number. 403 * \param [in] mod_dest Mirror-on-drop destination. 404 * 405 * \retval SHR_E_NONE No errors. 406 * \retval !SHR_E_NONE Failure. 407 */ 408 extern int 409 mbcm_ltsw_cosq_mod_dest_delete( 410 int unit, 411 bcmi_ltsw_cosq_mod_dest_t *mod_dest); 412 413 /*! 414 * \brief Get mirror-on-drop destination. 415 * 416 * \param [in] unit Unit Number. 417 * \param [out] mod_dest Mirror-on-drop destination. 418 * 419 * \retval SHR_E_NONE No errors. 420 * \retval !SHR_E_NONE Failure. 421 */ 422 extern int 423 mbcm_ltsw_cosq_mod_dest_get( 424 int unit, 425 bcmi_ltsw_cosq_mod_dest_t *mod_dest); 426 427 /*! 428 * \brief Get mirror instance id. 429 * 430 * \param [in] unit Unit Number. 431 * \param [out] instance_id Mirror instance id. -1 if not found. 432 * 433 * \retval SHR_E_NONE No errors. 434 * \retval !SHR_E_NONE Failure. 435 */ 436 extern int 437 mbcm_ltsw_cosq_mod_instance_id_get( 438 int unit, 439 int *instance_id); 440 441 /*! 442 * \brief Get mirror-on-drop statistics. 443 * 444 * \param [in] unit Unit Number. 445 * \param [in] id Statistics object id. 446 * \param [in] stat Cosq mirror-on-drop Statistics type. 447 * \param [out] value Statistics value. 448 * 449 * \retval SHR_E_NONE No errors. 450 * \retval !SHR_E_NONE Failure. 451 */ 452 extern int 453 mbcm_ltsw_cosq_mod_stat_get( 454 int unit, 455 bcm_cosq_object_id_t *id, 456 bcm_cosq_mod_stat_t stat, 457 uint64_t *value); 458 459 /*! 460 * \brief Set mirror-on-drop statistics counter. 461 * 462 * \param [in] unit Unit Number. 463 * \param [in] id Statistics object id. 464 * \param [in] stat Cosq mirror-on-drop Statistics type 465 * \param [in] value Statistics value. 466 * 467 * \retval SHR_E_NONE No errors. 468 * \retval !SHR_E_NONE Failure. 469 */ 470 extern int 471 mbcm_ltsw_cosq_mod_stat_set( 472 int unit, 473 bcm_cosq_object_id_t *id, 474 bcm_cosq_mod_stat_t stat, 475 uint64_t value); 476 477 #endif /* BCMINT_LTSW_MBCM_MOD_H */