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

NAS-127697 / 24.10 / Allow RDMA capable interfaces to be exposed for regular networking #13289

Merged
merged 2 commits into from
Mar 8, 2024

Conversation

bmeagherix
Copy link
Contributor

When JBOF support was added, we added all RDMA interfaces to rdma.interface.internal_interfaces. Instead only add those currently in use for JBOF purposes.

Likewise, in rdma.get_link_choices omit any interfaces that have been configured for general networking.

When JBOF support was added, we added *all* RDMA interfaces to
rdma.interface.internal_interfaces.  Instead only add those currently
in use for JBOF purposes.

Likewise, in rdma.get_link_choices omit any interfaces that have been
configured for general networking.
@bmeagherix bmeagherix added the WIP label Mar 6, 2024
@bugclerk bugclerk changed the title Allow RDMA capable interfaces to be exposed for regular networking NAS-127697 / 24.10 / Allow RDMA capable interfaces to be exposed for regular networking Mar 6, 2024
@bugclerk
Copy link
Contributor

bugclerk commented Mar 6, 2024

@bmeagherix
Copy link
Contributor Author

@yocalebo I added rdma.get_configured_interfaces, but there could be an argument to move this into interface.get_configured_interfaces instead. Any comment?

@bmeagherix bmeagherix requested a review from a team March 6, 2024 22:48
[['int_dhcp', '=', True],
['int_address', '!=', '']]]]
options = {'select': ['int_interface']}
result = [i['int_interface'] for i in await self.middleware.call('datastore.query', 'network.interfaces', filters, options)]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

datastore.query network.interfaces is doing the exact same thing as interface.query with the only exception of not joining all the other related tables. Furthermore, our customers configure "empty" parent interfaces and place VLANs on top of them so your filters will actually exclude the results.

We just need to run interface.query here and inside the for ifname, info in ifaces.items() loop, we need to result.append(ifname)

Finally, I do agree that this should not be in the rdma namespace. We should put it in interface namespace.

Move rdma.get_configured_interfaces to interface.get_configured_interfaces and
reimplement
@bmeagherix bmeagherix requested a review from yocalebo March 8, 2024 16:56
@bugclerk
Copy link
Contributor

bugclerk commented Mar 8, 2024

This PR has been merged and conversations have been locked.
If you would like to discuss more about this issue please use our forums or raise a Jira ticket.

@truenas truenas locked as resolved and limited conversation to collaborators Mar 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants