Skip to content

Add option to disable IPv6#2826

Merged
kasemir merged 6 commits intoControlSystemStudio:masterfrom
jembishop:jb/option-disable-ipv6
Sep 26, 2023
Merged

Add option to disable IPv6#2826
kasemir merged 6 commits intoControlSystemStudio:masterfrom
jembishop:jb/option-disable-ipv6

Conversation

@jembishop
Copy link
Copy Markdown
Member

This PR addresses issue #2825. It adds in a new config option EPICS_PVA_ENABLE_IPV6. The intention of this is to allow completely disabling any IPv6 functionality. Right now, the current behaviour is even if you do not configure any IPv6 addresses , channels with IPv6 are still created. This causes problems as even if you do not intend to use IPv6, as you still must have this functionality in your system to run the PVA client. This is problematic in our case, as we have a containerized setup which doesn't support IPv6, which we encountered when trying to run pvws.

I don't have very much familiarity with the Phoebus codebase so I have some questions moving forward.

  • I have disabled creation of IPv6 channels in ClientUDPHandler with this config option. Is there anywhere else in the codebase I should also disable IPv6 relevant things?
  • Since the udp_beacon is only IPv6, currently this is just not created with this config option. Should I create it with IPv4, or is it not strictly necessary?
  • Should I add in a test for this functionality in the pva/src/test folder?

@kasemir
Copy link
Copy Markdown
Collaborator

kasemir commented Sep 22, 2023

Looks good except for comments.

"Since the udp_beacon is only IPv6,"
It's actually IPv6 and IPv4. With IPv6 disabled, you'll need to create it as only-IPv4, not completely remove it. I think I commented on the related lines in the PR

@jembishop
Copy link
Copy Markdown
Member Author

Thanks @kasemir for reviewing.
I will implement the change to create the beacon as IPv4.
I'm a bit confused, which comments are you refering too? I can't see any comments you made in the PR.

@kasemir
Copy link
Copy Markdown
Collaborator

kasemir commented Sep 22, 2023

This is what I see on the github page, comments within the GH 'review':

Screenshot 2023-09-22 at 11 37 57 AM

@jembishop
Copy link
Copy Markdown
Member Author

Thanks. It looks like you need to submit the review? Your comments are in "Pending".
Just implemented your suggestion now, the beacon is created as IPv4 when IPv6 is disabled.

@jembishop jembishop marked this pull request as ready for review September 22, 2023 16:17
@kasemir
Copy link
Copy Markdown
Collaborator

kasemir commented Sep 22, 2023

Ah, submit, thanks!
Now it's just the "assert" which I'd replace with a log message or exception, since we're not generally using assert in the phoebus sources, that would be one more thing to enable/configure. Log messages and exceptions are fine.

@jembishop jembishop force-pushed the jb/option-disable-ipv6 branch from bd54a17 to 00ff6a3 Compare September 25, 2023 14:31
@jembishop jembishop force-pushed the jb/option-disable-ipv6 branch from 00ff6a3 to 61576f1 Compare September 25, 2023 14:31
@jembishop
Copy link
Copy Markdown
Member Author

Hi, I just added some extra code to make this flag work during tests, so you can run the phoebus tests in a non ipv6 environment.

I think this PR should be good to merge now, unless you have some more review comments.

@kasemir
Copy link
Copy Markdown
Collaborator

kasemir commented Sep 26, 2023

Great, just waiting for the build test to pass...

@kasemir kasemir merged commit 0c91f97 into ControlSystemStudio:master Sep 26, 2023
@jembishop jembishop deleted the jb/option-disable-ipv6 branch September 26, 2023 16:40
@jembishop jembishop mentioned this pull request Oct 20, 2023
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.

2 participants