]> git.proxmox.com Git - mirror_frr.git/blame - zebra/zebra_srte.h
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / zebra / zebra_srte.h
CommitLineData
acddc0ed 1// SPDX-License-Identifier: GPL-2.0-or-later
31f937fb
SM
2/* Zebra's client header.
3 * Copyright (C) 2020 Netdef, Inc.
31f937fb
SM
4 */
5
6#ifndef _ZEBRA_SRTE_H
7#define _ZEBRA_SRTE_H
8
9#include "zebra/zebra_mpls.h"
10
11#include "lib/zclient.h"
12#include "lib/srte.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18enum zebra_sr_policy_update_label_mode {
19 ZEBRA_SR_POLICY_LABEL_CREATED = 1,
20 ZEBRA_SR_POLICY_LABEL_UPDATED = 2,
21 ZEBRA_SR_POLICY_LABEL_REMOVED = 3,
22};
23
24struct zebra_sr_policy {
25 RB_ENTRY(zebra_sr_policy) entry;
26 uint32_t color;
27 struct ipaddr endpoint;
28 char name[SRTE_POLICY_NAME_MAX_LENGTH];
29 enum zebra_sr_policy_status status;
30 struct zapi_srte_tunnel segment_list;
8f74a383 31 struct zebra_lsp *lsp;
31f937fb 32 struct zebra_vrf *zvrf;
6082fb42 33 int sock;
31f937fb
SM
34};
35RB_HEAD(zebra_sr_policy_instance_head, zebra_sr_policy);
36RB_PROTOTYPE(zebra_sr_policy_instance_head, zebra_sr_policy, entry,
37 zebra_sr_policy_instance_compare)
38
39extern struct zebra_sr_policy_instance_head zebra_sr_policy_instances;
40
41struct zebra_sr_policy *
42zebra_sr_policy_add(uint32_t color, struct ipaddr *endpoint, char *name);
43void zebra_sr_policy_del(struct zebra_sr_policy *policy);
44struct zebra_sr_policy *zebra_sr_policy_find(uint32_t color,
45 struct ipaddr *endpoint);
46struct zebra_sr_policy *zebra_sr_policy_find_by_name(char *name);
47int zebra_sr_policy_validate(struct zebra_sr_policy *policy,
48 struct zapi_srte_tunnel *new_tunnel);
49int zebra_sr_policy_bsid_install(struct zebra_sr_policy *policy);
50void zebra_sr_policy_bsid_uninstall(struct zebra_sr_policy *policy,
51 mpls_label_t old_bsid);
52void zebra_srte_init(void);
53int zebra_sr_policy_label_update(mpls_label_t label,
54 enum zebra_sr_policy_update_label_mode mode);
55
56#ifdef __cplusplus
57}
58#endif
59
60#endif /* _ZEBRA_SRTE_H */