From 97748cae2e6261d8fdc7c331a4d82828ac51ed81 Mon Sep 17 00:00:00 2001 From: Jakub Grajciar Date: Thu, 4 Oct 2018 11:05:35 +0200 Subject: IGMP: proxy device Create 'proxy device' per VRF and add one upstream and one or many downstream interfaces. Change-Id: I1cef05fb01e73a5b483c7a2f4debaaeffe2c8155 Signed-off-by: Jakub Grajciar --- src/plugins/igmp/igmp_proxy.h | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/plugins/igmp/igmp_proxy.h (limited to 'src/plugins/igmp/igmp_proxy.h') diff --git a/src/plugins/igmp/igmp_proxy.h b/src/plugins/igmp/igmp_proxy.h new file mode 100644 index 00000000000..6d49159518b --- /dev/null +++ b/src/plugins/igmp/igmp_proxy.h @@ -0,0 +1,62 @@ +/* + *------------------------------------------------------------------ + * Copyright (c) 2018 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------ + */ + +#ifndef _IGMP_PROXY_H_ +#define _IGMP_PROXY_H_ + +#include +#include + +typedef struct +{ + /* VRF index */ + u32 vrf_id; + + /* upstrema interface */ + u32 upstream_if; + + /* downstream interfaces */ + u32 *downstream_ifs; +} igmp_proxy_device_t; + +/** + * @brief IGMP proxy device add/del + * @param vrf_id - VRF id + * @param sw_if_index - upstream interface + * @param add - add/del + * + * Add/del IGMP proxy device. Interface must be IGMP enabled in HOST mode. + */ +int igmp_proxy_device_add_del (u32 vfr_id, u32 sw_if_index, u8 add); + +/** + * @brief IGMP proxy device add/del interface + * @param vrf_id - VRF id + * @param sw_if_index - downstream interface + * @param add - add/del + * + * Add/del IGMP enabled interface in ROUTER mode to proxy device. + */ +int igmp_proxy_device_add_del_interface (u32 vrf_id, u32 sw_if_index, u8 add); + +void igmp_proxy_device_merge_config (igmp_config_t *config, u8 block); + +void igmp_proxy_device_block_src (igmp_config_t *config, igmp_group_t *group, igmp_src_t *src); + +void igmp_proxy_device_mfib_path_add_del (igmp_group_t *group, u8 add); + +#endif /* IGMP_PROXY_H */ -- cgit 1.2.3-korg