diff options
| author | Olivier Dugeon <olivier.dugeon@orange.com> | 2022-10-25 10:53:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-25 10:53:23 +0200 |
| commit | f274c9fde26f3c566e4bdad24e126d5fe37999d6 (patch) | |
| tree | d427fcbd2e5fbcc3c9e0ef7758761d5953af06bf /lib/if.c | |
| parent | 695f387ed872c1bc55ad4149ede95465b48697b9 (diff) | |
| parent | fe0a129687c530d95377a6ed7c14d578c5be5996 (diff) | |
Merge pull request #12125 from louis-6wind/fix-link-params
lib,zebra,ospf: link-params are not flushed after "no enable"
Diffstat (limited to 'lib/if.c')
| -rw-r--r-- | lib/if.c | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -1095,13 +1095,15 @@ const char *if_link_type_str(enum zebra_link_type llt) struct if_link_params *if_link_params_get(struct interface *ifp) { - int i; + return ifp->link_params; +} - if (ifp->link_params != NULL) - return ifp->link_params; +struct if_link_params *if_link_params_enable(struct interface *ifp) +{ + struct if_link_params *iflp; + int i; - struct if_link_params *iflp = - XCALLOC(MTYPE_IF_LINK_PARAMS, sizeof(struct if_link_params)); + iflp = if_link_params_init(ifp); /* Compute default bandwidth based on interface */ iflp->default_bw = @@ -1129,6 +1131,20 @@ struct if_link_params *if_link_params_get(struct interface *ifp) return iflp; } +struct if_link_params *if_link_params_init(struct interface *ifp) +{ + struct if_link_params *iflp = if_link_params_get(ifp); + + if (iflp) + return iflp; + + iflp = XCALLOC(MTYPE_IF_LINK_PARAMS, sizeof(struct if_link_params)); + + ifp->link_params = iflp; + + return iflp; +} + void if_link_params_free(struct interface *ifp) { XFREE(MTYPE_IF_LINK_PARAMS, ifp->link_params); |
