mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-28 07:40:02 +00:00

The current implementation of the overrides for peer address-family attributes suffered a bug, which caused all peer-specific attributes to be lost when the peer was added to a peer-group which already had that specific address-family active. This commit extends the *peer_group2peer_config_copy_af* function to respect overridden flags properly. Additionally, the arguments of the macros *PEER_ATTR_INHERIT* and *PEER_STR_ATTR_INHERIT* have been reordered to be more consistent and easy to read. This commit also adds further test cases to the BGP peer attributes test suite, so that this kind of error is being caught in future commits. The missing AF-attribute *distribute-list* has also been added to the test suite. Signed-off-by: Pascal Mathis <mail@pascalmathis.com>
191 lines
11 KiB
Python
191 lines
11 KiB
Python
import frrtest
|
|
|
|
class TestFlag(frrtest.TestMultiOut):
|
|
program = './test_peer_attr'
|
|
|
|
# List of tests can be generated by executing:
|
|
# $> ./test_peer_attr 2>&1 | sed -n 's/\\/\\\\/g; s/\S\+ \[test\] \(.\+\)/TestFlag.okfail(\x27\1\x27)/pg'
|
|
#
|
|
TestFlag.okfail('peer\\capability dynamic')
|
|
TestFlag.okfail('peer\\capability extended-nexthop')
|
|
TestFlag.okfail('peer\\capability extended-nexthop')
|
|
TestFlag.okfail('peer\\disable-connected-check')
|
|
TestFlag.okfail('peer\\dont-capability-negotiate')
|
|
TestFlag.okfail('peer\\enforce-first-as')
|
|
TestFlag.okfail('peer\\override-capability')
|
|
TestFlag.okfail('peer\\passive')
|
|
TestFlag.okfail('peer\\shutdown')
|
|
TestFlag.okfail('peer\\strict-capability-match')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\addpath-tx-all-paths')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\addpath-tx-all-paths')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\addpath-tx-all-paths')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\addpath-tx-all-paths')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\addpath-tx-bestpath-per-AS')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\addpath-tx-bestpath-per-AS')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\addpath-tx-bestpath-per-AS')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\addpath-tx-bestpath-per-AS')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\allowas-in')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\allowas-in')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\allowas-in')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\allowas-in')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\allowas-in origin')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\allowas-in origin')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\allowas-in origin')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\allowas-in origin')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\as-override')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\as-override')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\as-override')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\as-override')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\attribute-unchanged as-path')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\attribute-unchanged as-path')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\attribute-unchanged as-path')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\attribute-unchanged as-path')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\attribute-unchanged next-hop')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\attribute-unchanged next-hop')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\attribute-unchanged next-hop')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\attribute-unchanged next-hop')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\attribute-unchanged med')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\attribute-unchanged med')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\attribute-unchanged med')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\attribute-unchanged med')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\attribute-unchanged as-path next-hop')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\attribute-unchanged as-path next-hop')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\attribute-unchanged as-path next-hop')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\attribute-unchanged as-path next-hop')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\attribute-unchanged as-path med')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\attribute-unchanged as-path med')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\attribute-unchanged as-path med')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\attribute-unchanged as-path med')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\attribute-unchanged as-path next-hop med')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\attribute-unchanged as-path next-hop med')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\attribute-unchanged as-path next-hop med')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\attribute-unchanged as-path next-hop med')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\capability orf prefix-list send')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\capability orf prefix-list send')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\capability orf prefix-list send')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\capability orf prefix-list send')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\capability orf prefix-list receive')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\capability orf prefix-list receive')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\capability orf prefix-list receive')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\capability orf prefix-list receive')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\capability orf prefix-list both')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\capability orf prefix-list both')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\capability orf prefix-list both')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\capability orf prefix-list both')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\default-originate')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\default-originate')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\default-originate')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\default-originate')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\default-originate route-map')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\default-originate route-map')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\default-originate route-map')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\default-originate route-map')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\distribute-list')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\filter-list')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\maximum-prefix')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\next-hop-self')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\next-hop-self')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\next-hop-self')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\next-hop-self')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\next-hop-self force')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\next-hop-self force')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\next-hop-self force')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\next-hop-self force')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\prefix-list')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\remove-private-AS')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\remove-private-AS')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\remove-private-AS')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\remove-private-AS')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\remove-private-AS all')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\remove-private-AS all')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\remove-private-AS all')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\remove-private-AS all')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\remove-private-AS replace-AS')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\remove-private-AS replace-AS')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\remove-private-AS replace-AS')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\remove-private-AS replace-AS')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\remove-private-AS all replace-AS')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\remove-private-AS all replace-AS')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\remove-private-AS all replace-AS')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\remove-private-AS all replace-AS')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\route-map')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\route-reflector-client')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\route-reflector-client')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\route-reflector-client')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\route-reflector-client')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\route-server-client')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\route-server-client')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\route-server-client')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\route-server-client')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\send-community')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\send-community')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\send-community')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\send-community')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\send-community extended')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\send-community extended')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\send-community extended')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\send-community extended')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\send-community large')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\send-community large')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\send-community large')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\send-community large')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\soft-reconfiguration inbound')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\soft-reconfiguration inbound')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\soft-reconfiguration inbound')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\soft-reconfiguration inbound')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\unsuppress-map')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\unsuppress-map')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\unsuppress-map')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\unsuppress-map')
|
|
TestFlag.okfail('peer\\ipv4-unicast\\weight')
|
|
TestFlag.okfail('peer\\ipv4-multicast\\weight')
|
|
TestFlag.okfail('peer\\ipv6-unicast\\weight')
|
|
TestFlag.okfail('peer\\ipv6-multicast\\weight')
|