Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[docker-orchagent]: Add NDP Proxy Daemon #5517

Merged
merged 4 commits into from
Oct 5, 2020

Conversation

theasianpianist
Copy link
Contributor

Signed-off-by: Lawrence Lee [email protected]

Add NDP Proxy Daemon to the docker-orchagent image, and manage it with supervisord.

- Why I did it
Native proxy NDP in Linux requires explicit neighbor entries in the kernel neighbor table, i.e. it's not possible to configure a subnet for proxy NDP. NDP Proxy Daemon (ndppd) bypasses the kernel neighbor table entirely and allows for subnets when configuring proxy NDP.

- How I did it

  • Install ndppd during image build, and copy config files to image
  • Configure proxy settings based on config DB at container start
  • Pipe ndppd output to logger inside container to log output in syslog

- How to verify it

  1. Copy and load docker-orchagent image to a device that supports proxy_arp.
  2. Enable proxy_arp for a VLAN interface in config_db.
  3. Stop and delete the existing swss container.
  4. config reload
  5. Select an unused IPv6 address in the same subnet as one of the VLAN interfaces on the device from step 1.
  6. On a neighbor connected to the device from step 1, choose an interface connected to the VLAN used in step 5, and add the IPv6 address from step 5 to this interface.
  7. From the neighbor, attempt to ping a new, unused IPv6 address in the same subnet as the VLAN interface from step 5 (the ping should fail).
  8. Check the output of ip -6 neigh. The IPv6 address pinged in step 7 should be REACHABLE.

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

  • 201811
  • 201911
  • 202006

- Description for the changelog

Add support for proxy NDP

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

prsunny
prsunny previously approved these changes Oct 1, 2020
@theasianpianist
Copy link
Contributor Author

retest baseimage please

@theasianpianist theasianpianist force-pushed the ndp-proxy branch 2 times, most recently from 186dcc6 to 03be189 Compare October 1, 2020 23:31
* Install `ndppd` during build
* Configure `ndppd` based on Config DB at container start

Signed-off-by: Lawrence Lee <[email protected]>
@theasianpianist theasianpianist force-pushed the ndp-proxy branch 2 times, most recently from e287e7a to 0866a95 Compare October 2, 2020 02:30
lguohan
lguohan previously approved these changes Oct 2, 2020
@lguohan
Copy link
Collaborator

lguohan commented Oct 2, 2020

there are still build failures

@theasianpianist
Copy link
Contributor Author

@lguohan in the process of debugging

@theasianpianist
Copy link
Contributor Author

@lguohan build failures fixed

@theasianpianist theasianpianist merged commit 8c34409 into sonic-net:master Oct 5, 2020
@theasianpianist theasianpianist deleted the ndp-proxy branch October 5, 2020 15:48
theasianpianist added a commit that referenced this pull request Oct 5, 2020
santhosh-kt pushed a commit to santhosh-kt/sonic-buildimage that referenced this pull request Feb 25, 2021
* Install ndppd during image build, and copy config files to image
* Configure proxy settings based on config DB at container start
* Pipe ndppd output to logger inside container to log output in syslog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants