Skip to content

Conversation

@bradh352
Copy link
Collaborator

@bradh352 bradh352 commented Dec 6, 2024

Why I did it

There is a bug in libyang when attempting to validate table BGP_PEER_GROUP_AF and likely BGP_NEIGHBOR_AF in respect to route_map_in and route_map_out.

The issue is with the use of leaf-list specifically when it is pulled in via a uses clause of bgpcmn:sonic-bgp-cmn-af.

The error message resembles that of if a child is specified that isn't recognized at all:

All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
Work item tracking

How I did it

Moving the leaf-list to the parent rather than being imported through the uses clause works around this issue.

Again, this is a bug in libyang itself, and the same block in sonic-bgp-cmn-af was simply moved to the parents and it magically fixes the issue.

How to verify it

Relevant config section to cause the issue (probably included too much here, but none-the-less effective):

{
    "DEVICE_METADATA": {
        "localhost": {
           {# ... #}
            "docker_routing_config_mode": "unified",
            "frr_mgmt_framework_config": "true"
           {# ... #}
        }
    },
    "BGP_GLOBALS": {
        "default": {
            "load_balance_mp_relax": "true",
            "local_asn": "4210000001",
            "log_nbr_state_changes": "true",
            "router_id": "172.16.0.1"
        }
    },
    "BGP_GLOBALS_AF": {
        "default|ipv4_unicast": {
            "max_ebgp_paths": "2"
        },
        "default|ipv6_unicast": {
            "max_ebgp_paths": "2"
        },
        "default|l2vpn_evpn": {
            "advertise-all-vni": "true"
        }
    },
    "BGP_NEIGHBOR": {
        "default|Ethernet72": {
            "peer_group_name": "PEERS"
        }
    },
    "BGP_PEER_GROUP": {
        "default|PEERS": {
            "bfd": "true",
            "capability_ext_nexthop": "true",
            "ebgp_multihop": "true",
            "holdtime": "9",
            "keepalive": "3",
            "min_adv_interval": "5",
            "peer_type": "external"
        }
    },
    "BGP_PEER_GROUP_AF": {
        "default|PEERS|ipv4_unicast": {
            "admin_status": "up",
            "route_map_in": [
                "ALLOW"
            ],
            "route_map_out": [
                "ALLOW"
            ]
        },
        "default|PEERS|ipv6_unicast": {
            "admin_status": "up",
            "route_map_in": [
                "ALLOW"
            ],
            "route_map_out": [
                "ALLOW"
            ]
        },
        "default|PEERS|l2vpn_evpn": {
            "admin_status": "up",
            "route_map_in": [
                "ALLOW"
            ],
            "route_map_out": [
                "ALLOW"
            ],
            "unchanged_nexthop": "true"
        }
    },
    "ROUTE_MAP": {
        "ALLOW|1": {
            "route_operation": "permit"
        }
    },
    "ROUTE_MAP_SET": {
        "ALLOW": {}
    }
}

Which release branch to backport (provide reason below if selected)

  • 202411

Tested branch (Please provide the tested image version)

master as of 20241206

Description for the changelog

[libyang bug] workaround leaf-list via uses bug in BGP route-map

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

Signed-off-by: Brad House (@bradh352)

@bradh352 bradh352 requested a review from qiluo-msft as a code owner December 6, 2024 22:23
@bradh352 bradh352 force-pushed the libyang-bug-workaround branch from 9369531 to 1b3faeb Compare December 11, 2024 21:58
@bradh352
Copy link
Collaborator Author

rebased to force rebuild to see if general sonic CI tests are working yet

@bradh352
Copy link
Collaborator Author

@qiluo-msft @lguohan please review

@bradh352 bradh352 force-pushed the libyang-bug-workaround branch from 1b3faeb to 806a745 Compare December 15, 2024 19:43
@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@bradh352
Copy link
Collaborator Author

rebased to try to force rebuild since last build hung

@bradh352 bradh352 force-pushed the libyang-bug-workaround branch from 806a745 to aca9109 Compare December 19, 2024 12:40
@bradh352
Copy link
Collaborator Author

rebased again since last build failed in unrelated test

@mssonicbld
Copy link
Collaborator

/azp run Azure.sonic-buildimage

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@lguohan lguohan added the YANG YANG model related changes label Dec 19, 2024
bluecmd pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request Dec 24, 2024
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Dec 24, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Dec 26, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Dec 27, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Dec 28, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bluecmd pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request Dec 28, 2024
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Dec 30, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Dec 31, 2024
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Jan 1, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Jan 2, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Mar 29, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 1, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 2, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 3, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 4, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 5, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 7, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 8, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 11, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 12, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 15, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 16, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 17, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 19, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 23, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 24, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 26, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 27, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 28, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bluecmd pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request Apr 29, 2025
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request Apr 30, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bradh352 added a commit to bradh352/sonic-buildimage that referenced this pull request Apr 30, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bluecmd pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request Apr 30, 2025
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bluecmd pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request Apr 30, 2025
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request May 2, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
github-actions bot pushed a commit to bradh352/sonic-buildimage that referenced this pull request May 3, 2025
There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
bluecmd pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request May 3, 2025
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
qiluo-msft pushed a commit that referenced this pull request Jun 24, 2025
When a uses clause imports a grouping, it was only processing leaf entries and ignoring leaf-list and choice clauses. That means that for instance in bgp route maps, route_map_in and route_map_out validations would fail.

Honoring the uses refine clause is now also honored which is depended upon in sonic-utilities.

This now precompiles the uses clause and integrates it as if the uses clause was not part of the schema as multiple end users were having to do this additional processing.

This fixes that behavior and adds test cases to ensure it doesn't regress in the future.

This is the proper fix, replacing #21078 that just worked around it.

Removal of uses logic in sonic-utilities here: sonic-net/sonic-utilities#3814

Fixes #22382

Work item tracking
Microsoft ADO (number only):
How I did it
Added leaf-list lookup.

How to verify it
See test cases pass

Description for the changelog
sonic-yang-mgmt: uses clause with leaf-list, choice not honored
dal00 pushed a commit to kamelnetworks/sonic-buildimage that referenced this pull request Jul 22, 2025
…et#21078)

There is a bug in libyang when attempting to use table `BGP_PEER_GROUP_AF`
and likely `BGP_NEIGHBOR_AF` in respect to `route_map_in` and `route_map_out`.

The issue is with the use of `leaf-list` specifically when it is pulled in
via a `uses` clause `bgpcmn:sonic-bgp-cmn-af`.

The error message resembles that of if a child is specified that isn't
recognized at all:
```
All Keys are not parsed in BGP_PEER_GROUP_AF
dict_keys(['default|PEERS|ipv4_unicast'])
exceptionList:["'route_map_in'"]
```

Moving the leaf-list to the parent rather than being imported
through the `uses` clause works around this issue.

Signed-off-by: Brad House (@bradh352)
noaOrMlnx pushed a commit to noaOrMlnx/sonic-buildimage that referenced this pull request Nov 24, 2025
…ce not honored (sonic-net#1731)

#### Why I did it

When a uses clause imports a grouping, it was only processing leaf entries and ignoring leaf-list and choice clauses. That means that for instance in bgp route maps, route_map_in and route_map_out validations would fail.

Honoring the uses `refine` clause is now also honored which is depended upon in sonic-utilities.

This now precompiles the uses clause and integrates it as if the uses clause was not part of the schema as multiple end users were having to do this additional processing.

This fixes that behavior and adds test cases to ensure it doesn't regress in the future.

This is the proper fix, replacing sonic-net#21078 that just worked around it.

Removal of `uses` logic in sonic-utilities here: sonic-net/sonic-utilities#3814

Fixes sonic-net#22382

##### Work item tracking
- Microsoft ADO **(number only)**:

#### How I did it

Added leaf-list lookup.

#### How to verify it

See test cases pass

#### Which release branch to backport (provide reason below if selected)

- [X] 202405
- [X] 202411

#### Tested branch (Please provide the tested image version)

master as of 20250304

#### Description for the changelog
sonic-yang-mgmt: uses clause with leaf-list, choice not honored

#### Link to config_db schema for YANG module changes
N/A

#### A picture of a cute animal (not mandatory but encouraged)
Signed-off-by: Brad House (@bradh352)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

YANG YANG model related changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants