diff options
| author | Russ White <russ@riw.us> | 2023-05-02 10:42:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-02 10:42:39 -0400 |
| commit | b9f0c8c8d0f005b38be8f072643159a254b7fd6f (patch) | |
| tree | 6c8ddaab14718aece0cf7ddaf5eae7ac7c43155a /lib/flex_algo.c | |
| parent | 9ab0661b89f3c3b9db76cbe9f0138a8dbd206a1b (diff) | |
| parent | cc1f9bd9e286c40d814c2fc1a71e685ef7753d01 (diff) | |
Merge pull request #13404 from louis-6wind/fix-flex-algo-race-condition
isisd: fix a flex algo race condition and a minor fix
Diffstat (limited to 'lib/flex_algo.c')
| -rw-r--r-- | lib/flex_algo.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/flex_algo.c b/lib/flex_algo.c index bafbf8b779..efeacb5a0c 100644 --- a/lib/flex_algo.c +++ b/lib/flex_algo.c @@ -79,6 +79,12 @@ bool flex_algo_definition_cmp(struct flex_algo *fa1, struct flex_algo *fa2) return false; if (fa1->metric_type != fa2->metric_type) return false; + if (fa1->exclude_srlg != fa2->exclude_srlg) + return false; + if (fa1->flags != fa2->flags) + return false; + if (fa1->unsupported_subtlv != fa2->unsupported_subtlv) + return false; if (!admin_group_cmp(&fa1->admin_group_exclude_any, &fa2->admin_group_exclude_any)) @@ -140,3 +146,24 @@ char *flex_algo_metric_type_print(char *type_str, size_t sz, } return type_str; } + +bool flex_algo_get_state(struct flex_algos *flex_algos, uint8_t algorithm) +{ + struct flex_algo *fa = flex_algo_lookup(flex_algos, algorithm); + + if (!fa) + return false; + + return fa->state; +} + +void flex_algo_set_state(struct flex_algos *flex_algos, uint8_t algorithm, + bool state) +{ + struct flex_algo *fa = flex_algo_lookup(flex_algos, algorithm); + + if (!fa) + return; + + fa->state = state; +} |
