Skip to content

Update neighbor information at runtime #18

@jack-ullery

Description

@jack-ullery

Is your feature request related to a problem? Please describe.
I'm struggling to find a way to update neighbor information at runtime.

The two things I would like to do:

  1. Add a neighbor at runtime (duplicate of https://redmine.named-data.net/issues/4102)
  2. Change the link-cost for a pre-existing neighbor at runtime

Describe the solution you'd like
It would be great if nlsrc had a neighbor command for adding/removing/updating neighbor information.

The syntax could be something like:

nlsrc neighbor add [name] PREFIX [face-uri] FACEURI [link-cost] LINK_COST
    Command requests to add a neighbor. If a neighbor already exists with the same prefix and face-uri, it is updated with the specified link-cost
nlsrc neighbor destroy [name] PREFIX
    Command to manually destroy a neighbor. Even if the face is still active

Describe alternatives you've considered
I tried changing the cost of the routes manually using nfdc, but it seems that these new link costs did not propagate their way to NLSR.

For example, in a two node network, when I use nfdc to edit the following routes from:

prefix=/network/site/n2 nexthop=265 origin=nlsr cost=1 flags=capture expires=never
prefix=/localhop/network/nlsr/LSA nexthop=265 origin=nlsr cost=1 flags=capture expires=never
prefix=/localhop/network/nlsr/sync/v=11 nexthop=265 origin=nlsr cost=1 flags=capture expires=never
prefix=/advertised/prefix nexthop=265 origin=nlsr cost=1 flags=capture expires=3277s

to:

prefix=/network/site/n2 nexthop=265 origin=nlsr cost=100 flags=capture expires=never
prefix=/localhop/network/nlsr/LSA nexthop=265 origin=nlsr cost=100 flags=capture expires=never
prefix=/localhop/network/nlsr/sync/v=11 nexthop=265 origin=nlsr cost=100 flags=capture expires=never
prefix=/advertised/prefix nexthop=265 origin=nlsr cost=100 flags=capture expires=never

The routing table reported by nlsrc did not change:

Routing Table:
  Destination: /network/site/n2
    NextHop(Uri: udp4://10.0.1.21:6363, Cost: 1)

Additional context?
I'm probably not the first person to try and change a neighbor's link-cost at runtime. Did I miss some secret configuration somewhere? Maybe there is a duplicate issue for that I missed

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