diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2018-10-04 11:05:35 +0200 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2018-10-16 08:28:15 +0000 |
commit | 97748cae2e6261d8fdc7c331a4d82828ac51ed81 (patch) | |
tree | 503ec3556042aef7d0b1575baca06fd239d09828 /src/plugins/igmp/igmp_proxy.h | |
parent | 02a95ce8d53caeba07a3c027b12339f44f3093b8 (diff) |
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 <jgrajcia@cisco.com>
Diffstat (limited to 'src/plugins/igmp/igmp_proxy.h')
-rw-r--r-- | src/plugins/igmp/igmp_proxy.h | 62 |
1 files changed, 62 insertions, 0 deletions
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 <igmp/igmp_types.h> +#include <igmp/igmp_config.h> + +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 */ |