]> git.proxmox.com Git - mirror_frr.git/blobdiff - pbrd/pbr_map.c
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / pbrd / pbr_map.c
index 03e6bacf1e4967cabfd4229089ccc1b8912cbdcf..0e18f1198dfd78fd3ab1df17dda902cee65c5947 100644 (file)
@@ -1,21 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * PBR-map Code
  * Copyright (C) 2018 Cumulus Networks, Inc.
  *               Donald Sharp
- *
- * FRR is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * FRR is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include <zebra.h>
 
@@ -408,8 +395,7 @@ struct pbr_map_sequence *pbrms_lookup_unique(uint32_t unique, char *ifname,
 
        RB_FOREACH (pbrm, pbr_map_entry_head, &pbr_maps) {
                for (ALL_LIST_ELEMENTS_RO(pbrm->incoming, inode, pmi)) {
-                       if (strncmp(pmi->ifp->name, ifname, INTERFACE_NAMSIZ)
-                           != 0)
+                       if (strcmp(pmi->ifp->name, ifname) != 0)
                                continue;
 
                        if (ppmi)
@@ -792,6 +778,12 @@ void pbr_map_check_nh_group_change(const char *nh_group)
                        if (found_name) {
                                bool original = pbrm->valid;
 
+                               /* Set data we were waiting on */
+                               if (pbrms->nhgrp_name)
+                                       pbr_nht_set_seq_nhg_data(
+                                               pbrms,
+                                               nhgc_find(pbrms->nhgrp_name));
+
                                pbr_map_check_valid_internal(pbrm);
 
                                if (pbrm->valid && (original != pbrm->valid))