summaryrefslogtreecommitdiff
path: root/pathd
diff options
context:
space:
mode:
authorJavier Garcia <javier.garcia@voltanet.io>2021-06-24 12:39:40 +0200
committerJavier Garcia <javier.garcia@voltanet.io>2021-06-28 17:08:48 +0200
commitc9daf7efc6cbf812c1a737c28027227570f1297d (patch)
tree556596befe61b007f3369f156bd24be9c79a88e2 /pathd
parent0a1bf4be7f3b830efff20abc62964f2f72c145df (diff)
pathd: Handle srp_id correctly (2/2)
Based on RFC 8231 #5.8.3 PcUpd RFC 8181 #5.1 Pcinit Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
Diffstat (limited to 'pathd')
-rw-r--r--pathd/path_pcep_config.c2
-rw-r--r--pathd/path_pcep_pcc.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/pathd/path_pcep_config.c b/pathd/path_pcep_config.c
index 0349618304..4c16b83948 100644
--- a/pathd/path_pcep_config.c
+++ b/pathd/path_pcep_config.c
@@ -332,6 +332,7 @@ int path_pcep_config_initiate_path(struct path *path)
candidate = srte_candidate_add(
policy, path->nbkey.preference,
SRTE_ORIGIN_PCEP, path->originator);
+ candidate->policy->srp_id = path->srp_id;
strlcpy(candidate->name, path->name,
sizeof(candidate->name));
SET_FLAG(candidate->flags, F_CANDIDATE_NEW);
@@ -387,6 +388,7 @@ int path_pcep_config_update_path(struct path *path)
if (!candidate)
return 0;
+ candidate->policy->srp_id = path->srp_id;
// first clean up old segment list if present
if (candidate->lsp->segment_list) {
SET_FLAG(candidate->lsp->segment_list->flags,
diff --git a/pathd/path_pcep_pcc.c b/pathd/path_pcep_pcc.c
index 4848ba7c0c..b72a536ef4 100644
--- a/pathd/path_pcep_pcc.c
+++ b/pathd/path_pcep_pcc.c
@@ -560,7 +560,6 @@ void pcep_pcc_send_report(struct ctrl_state *ctrl_state,
if (is_stable && (real_status != PCEP_LSP_OPERATIONAL_DOWN)) {
PCEP_DEBUG("(%s)%s Send report for candidate path (!DOWN) %s",
__func__, pcc_state->tag, path->name);
- path->srp_id = 0;
path->status = real_status;
send_report(pcc_state, path);
}