diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-06-06 09:49:37 +0300 | 
|---|---|---|
| committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-06-06 10:28:50 +0300 | 
| commit | 0f05ea43b0c18c890ef0faf81de1d4ad74893d86 (patch) | |
| tree | 5a9831f0487ad01f9d04b2ea7a03a7bfffcc64db /bgpd/bgp_attr.h | |
| parent | 23a1220847f020c126aa5ac696e191dd8c4450ae (diff) | |
bgpd: Initialize attr->local_pref to the configured default value
When we use network/redistribute local_preference is configured inproperly
when using route-maps something like:
```
network 100.100.100.100/32 route-map rm1
network 100.100.100.200/32 route-map rm2
route-map rm1 permit 10
 set local-preference +10
route-map rm2 permit 10
 set local-preference -10
```
Before:
```
root@spine1-debian-11:~# vtysh -c 'show bgp ipv4 unicast 100.100.100.100/32 json' | jq '.paths[].locPrf'
10
root@spine1-debian-11:~# vtysh -c 'show bgp ipv4 unicast 100.100.100.200/32 json' | jq '.paths[].locPrf'
0
```
After:
```
root@spine1-debian-11:~# vtysh -c 'show bgp ipv4 unicast 100.100.100.100/32 json' | jq '.paths[].locPrf'
110
root@spine1-debian-11:~# vtysh -c 'show bgp ipv4 unicast 100.100.100.200/32 json' | jq '.paths[].locPrf'
90
```
Set local-preference as the default value configured per BGP instance, but
do not set LOCAL_PREF flag by default.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'bgpd/bgp_attr.h')
| -rw-r--r-- | bgpd/bgp_attr.h | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/bgpd/bgp_attr.h b/bgpd/bgp_attr.h index 01d993dabd..06f350b36f 100644 --- a/bgpd/bgp_attr.h +++ b/bgpd/bgp_attr.h @@ -393,7 +393,8 @@ extern struct attr *bgp_attr_intern(struct attr *attr);  extern void bgp_attr_unintern_sub(struct attr *attr);  extern void bgp_attr_unintern(struct attr **pattr);  extern void bgp_attr_flush(struct attr *attr); -extern struct attr *bgp_attr_default_set(struct attr *attr, uint8_t origin); +extern struct attr *bgp_attr_default_set(struct attr *attr, struct bgp *bgp, +					 uint8_t origin);  extern struct attr *bgp_attr_aggregate_intern(  	struct bgp *bgp, uint8_t origin, struct aspath *aspath,  	struct community *community, struct ecommunity *ecommunity,  | 
