Skip to content

[staticroutebfd] use lowercase IPv6 address as cache key when nexthop IPv6 address is uppercase in the config_db #15764

@baorliu

Description

@baorliu

Description

when IPv6 address with uppercase letter (A-F) in the static route nexthop list, staticroutebfd does not covert it to lowercase before using it as a key in local cache.
Because the BFD session key in the redis STATE_DB is lowercase, so when staticroutebfd get a state update event from BFD state table, it cannot find it in local cache because of different letter case.
need to convert the IPv6 address to lowercase before create BFD session and using it as a cache key

Steps to reproduce the issue:

  1. static route configuration
        "2603:10e2:400::4/128": {
            "advertise": "false",
            "bfd": "true",
            "ifname": "PortChannel06,PortChannel05,PortChannel02,PortChannel01",
            "nexthop": "2603:10E2:400:6::2,2603:10E2:400:5::2,2603:10E2:400:2::2,2603:10E2:400:1::2"
        },
  1. make bfd session up by creating BFD session in the peer system
  2. show ipv6 route static

Describe the results you received:

static route for 603:10e2:400::4/128 is not installed

Describe the results you expected:

static route for 603:10e2:400::4/128 to be installed

Output of show version:

SONiC Software Version: SONiC.azure_cisco_msft_202205.0-dirty-20230615.161325
SONiC OS Version: 11
Distribution: Debian 11.7
Kernel: 5.10.0-18-2-amd64
Build commit: 6b5301c99
Build date: Thu Jun 15 23:24:29 UTC 2023

Output of show techsupport:

(paste your output here or download and attach the file here )

Additional information you deem important (e.g. issue happens only occasionally):

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions