forked from Mirror/frr

Add new interface command ip multicast boundary ACCESSLIST4_NAME. This allows filtering on both source and group using the extended access-list syntax vs. group-only as with the existing "ip multicast boundary oil" command, which uses prefix-lists. If both are configured, the prefix- list is evaluated first. The default behavior for both prefix-lists and access-lists remains "deny", so the prefix-list must have a terminating "permit" statement in order to also evaluate against the access-list. The following example denies groups in range 229.1.1.0/24 and groups in range 232.1.1.0/24 with source 10.0.20.2: ! ip prefix-list pim-oil-plist seq 10 deny 229.1.1.0/24 ip prefix-list pim-oil-plist seq 20 permit any ! access-list pim-acl seq 10 deny ip host 10.0.20.2 232.1.1.0 0.0.0.255 access-list pim-acl seq 20 permit ip any any ! interface r1-eth0 ip address 10.0.20.1/24 ip igmp ip pim ip multicast boundary oil pim-oil-plist ip multicast boundary pim-acl ! Signed-off-by: Corey Siltala <csiltala@atcorp.com>
32 lines
903 B
C
32 lines
903 B
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* PIM for Quagga
|
|
* Copyright (C) 2008 Everton da Silva Marques
|
|
*/
|
|
|
|
#ifndef PIM_UTIL_H
|
|
#define PIM_UTIL_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <zebra.h>
|
|
#include "lib/filter.h"
|
|
|
|
#include "checksum.h"
|
|
#include "pimd.h"
|
|
#include "pim_iface.h"
|
|
|
|
uint8_t igmp_msg_encode16to8(uint16_t value);
|
|
uint16_t igmp_msg_decode8to16(uint8_t code);
|
|
|
|
void pim_pkt_dump(const char *label, const uint8_t *buf, int size);
|
|
|
|
int pim_is_group_224_0_0_0_24(struct in_addr group_addr);
|
|
int pim_is_group_224_4(struct in_addr group_addr);
|
|
enum filter_type pim_access_list_apply(struct access_list *access, const struct in_addr *source,
|
|
const struct in_addr *group);
|
|
bool pim_is_group_filtered(struct pim_interface *pim_ifp, pim_addr *grp, pim_addr *src);
|
|
int pim_get_all_mcast_group(struct prefix *prefix);
|
|
bool pim_addr_is_multicast(pim_addr addr);
|
|
#endif /* PIM_UTIL_H */
|