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
+You should have received a copy of the GN5U General Public License
along with GNU Zebra; see the file COPYING. If not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
* Update the prefix-list on update groups.
*/
update_group_policy_update(bgp, BGP_POLICY_PREFIX_LIST,
- plist ? plist->name : NULL, 0, 0);
+ plist ? prefix_list_name(plist) : NULL, 0, 0);
for (ALL_LIST_ELEMENTS (bgp->peer, node, nnode, peer))
{
workqueue.h route_types.h libospf.h nexthop.h json.h \
ptm_lib.h csv.h bfd.h vrf.h
+noinst_HEADERS = \
+ plist_int.h
+
EXTRA_DIST = \
regex.c regex-gnu.h \
queue.h \
#include "log.h"
#include "routemap.h"
-/* Each prefix-list's entry. */
-struct prefix_list_entry
-{
- int seq;
-
- int le;
- int ge;
-
- enum prefix_list_type type;
-
- int any;
- struct prefix prefix;
-
- unsigned long refcnt;
- unsigned long hitcnt;
-
- struct prefix_list_entry *next;
- struct prefix_list_entry *prev;
-};
+#include "plist_int.h"
/* List of struct prefix_list. */
struct prefix_list_list
return NULL;
}
+const char *prefix_list_name (struct prefix_list *plist)
+{
+ return plist->name;
+}
+
/* Lookup prefix_list from list of prefix_list by name. */
struct prefix_list *
prefix_list_lookup (afi_t afi, const char *name)
PREFIX_PERMIT,
};
-enum prefix_name_type
-{
- PREFIX_TYPE_STRING,
- PREFIX_TYPE_NUMBER
-};
-
-struct prefix_list
-{
- char *name;
- char *desc;
-
- struct prefix_master *master;
-
- enum prefix_name_type type;
-
- int count;
- int rangecount;
-
- struct prefix_list_entry *head;
- struct prefix_list_entry *tail;
-
- struct prefix_list *next;
- struct prefix_list *prev;
-};
+struct prefix_list;
struct orf_prefix
{
extern void prefix_list_add_hook (void (*func) (struct prefix_list *));
extern void prefix_list_delete_hook (void (*func) (struct prefix_list *));
+extern const char *prefix_list_name (struct prefix_list *);
extern struct prefix_list *prefix_list_lookup (afi_t, const char *);
extern enum prefix_list_type prefix_list_apply (struct prefix_list *, void *);
{
/* Update filter-list in. */
if (PREFIX_NAME_IN (area))
- if (strcmp (PREFIX_NAME_IN (area), plist->name) == 0)
+ if (strcmp (PREFIX_NAME_IN (area), prefix_list_name (plist)) == 0)
{
PREFIX_LIST_IN (area) =
prefix_list_lookup (AFI_IP, PREFIX_NAME_IN (area));
/* Update filter-list out. */
if (PREFIX_NAME_OUT (area))
- if (strcmp (PREFIX_NAME_OUT (area), plist->name) == 0)
+ if (strcmp (PREFIX_NAME_OUT (area), prefix_list_name (plist)) == 0)
{
PREFIX_LIST_IN (area) =
prefix_list_lookup (AFI_IP, PREFIX_NAME_OUT (area));