-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
zebra: Always receive RS #15613
base: master
Are you sure you want to change the base?
zebra: Always receive RS #15613
Conversation
1bf0d59
to
8c5e6ff
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure this is the right approach. It seems to me that either a) we should stop unconditionally opening the per-vrf socket, or b) once opened, we should be willing to read it, and just drain the messages if they won't be used (because of configuration).
zebra/rtadv.c
Outdated
} | ||
} | ||
|
||
/* Always receive RS, no matter RA is disabled or not */ | ||
rtadv_start_interface_events(zvrf, zif); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function does several things - not just reading a socket. I don't think this wants to be unconditionally enabled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
I confirm that this error occurred in this environment:
[root@localhost ~]# cat /etc/frr/zebra.conf
!configuration by zddi!
hostname zebra
password zebra
log file /disk_extend/var_log/frr_log/zebra.log
!
interface eth0
ip address 10.2.48.140/22
ipv6 nd suppress-ra
!
interface lo
!
line vty All RS(Router Solicitation) packets will blocked in zebra's |
we also can set the recv-buffer of per-vrf socket to the 2097152. The value which can be acceptable to mem leak. |
zebra: The socket is listening on ND_ROUTER_SOLICIT of icmpv6, but won't recv it when RA is disabled. It will let packets accumulate in kernel. We should always receive RS packets regardless of whether RA is disabled. Signed-off-by: hengwu0 <[email protected]>
This PR is very important, if we only use BGP with ipv6-forward enabled. Since there will no configure in zebra.conf about RS/RA. All RS(Router Solicitation) packets will be blocked in zebra's recv-q by default. |
hmm, well, I made a couple of suggestions, and then you also offered a suggestion. but the code in the PR still has the problem that I commented about. if the PR is important to you, then please ... fix it?
|
This PR is stale because it has been open 180 days with no activity. Comment or remove the |
zebra: The socket is listening on ND_ROUTER_SOLICIT of icmpv6, but won't recv it when RA is disabled. It will let packets accumulate in kernel. We should always receive RS packets regardless of whether RA is disabled.
fix: #15303, #15365