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

Add a Virtual IX Flag field to IX Object #1557

Open
martinhannigan opened this issue Feb 23, 2024 · 31 comments
Open

Add a Virtual IX Flag field to IX Object #1557

martinhannigan opened this issue Feb 23, 2024 · 31 comments
Assignees

Comments

@martinhannigan
Copy link

Is your feature request related to a problem? Please describe.

We can't tell the difference between a virtual IX or a physically present IX without a ton of effort. It's a time waste for many since virtual IX's serve a fairly different purpose than traditional IX's.

Who is affected by the problem?

Users of PDB

What is the impact?

Pretty good. We can sort out the difference for either one (I want to see vIX, I want to see IX) and have a happy experience.

Are there security concerns?

Yes. It is important to understand the true definition of IX objects on the platform and provide an easy way to identify its different uses.

Are there privacy concerns?

No. PDB is a public registry. It's just a feature to compliment search and export.

Describe the solution you'd like

Add a field to the IX object specifying if it's a virtual IX or not.

Do you think this feature will require a formal design?

Perhaps

Describe alternatives you've considered

Doing nothing which is less than optimal.

Could this feature request need support from the Admin Committee?

Probably not.

What is the proposed priority?

High, aligns with https://github.com/peeringdb/peeringdb/issues/1556 and is probably a dependency order of operations wise.

@job
Copy link
Contributor

job commented Feb 23, 2024

Wasn’t this discussed a number of times before, with the main issue being that it’s hard to define what a “virtual” IX is?

@martinhannigan
Copy link
Author

martinhannigan commented Feb 23, 2024 via email

@job
Copy link
Contributor

job commented Feb 23, 2024

Definitely seems in scope, because what does the field mean? Who owns the field? Who can change it? Is this remote peering? What’s the plan if one party asserts that another party filled the field incorrectly?

I don’t think we can ignore all the previous discussion on this topic and ignore that there was no consensus

@grizz
Copy link
Member

grizz commented Feb 23, 2024

After hours of discussion, this was solved and never implemented. I somehow knew this was going to come back :)

As I recall, the solution was to require a facility for the IX, with easy to click options (as dummy Fac objects) including Virtual.

@martinhannigan
Copy link
Author

martinhannigan commented Feb 24, 2024 via email

@arnoldnipper
Copy link
Contributor

As I recall, the solution was to require a facility for the IX, with easy to click options (as dummy Fac objects) including Virtual.

Still, there are IXes which are real IXes which do not disclose any facility. This virtual IX discussion does not lead us anywhere

@martinhannigan
Copy link
Author

martinhannigan commented Feb 25, 2024 via email

@arnoldnipper
Copy link
Contributor

Can you give an example of “real” IX without a facility? I don’t know how that would be possible.

Read carefully ... I was saying that atm there are "real" facilities in PeeringDB which didn't expose any facilities. I was not saying that they are in no facility. And there might also be IXes where you can connect to. However, they are not in a facility. I.e. you can't rent space there, but terminate only your connection to the IX

@martinhannigan
Copy link
Author

martinhannigan commented Feb 27, 2024 via email

@arnoldnipper
Copy link
Contributor

Perhaps the issue is better defined as "non facility IX" and flagged.

Who should flag that? And you already easily see when an IX has no facility listed ... for whatever reason ...

@martinhannigan
Copy link
Author

martinhannigan commented Feb 28, 2024 via email

@arnoldnipper
Copy link
Contributor

How does a user flag that in a search or exports?

E.g.

curl -sG https://www.peeringdb.com/api/ix?fac_count=0

@martinhannigan
Copy link
Author

Thats not via the UI.

@arnoldnipper
Copy link
Contributor

Thats not via the UI.

That's true. While we decided that GUI and API have the same fields, the API is more powerful. And IMO it doesn't make sense to overload the GUI

@grizz
Copy link
Member

grizz commented Mar 1, 2024

As I recall, the solution was to require a facility for the IX, with easy to click options (as dummy Fac objects) including Virtual.

Still, there are IXes which are real IXes which do not disclose any facility. This virtual IX discussion does not lead us anywhere

The solution we discussed also included a dummy Fac object of "not disclosed" -- which I think would also work for "not in PDB" and solve that.

@martinhannigan
Copy link
Author

martinhannigan commented Mar 1, 2024 via email

@leovegoda leovegoda self-assigned this Mar 5, 2024
@leovegoda leovegoda added this to the 1 Decide milestone Mar 5, 2024
@jackcarrozzo
Copy link

Seeking some clarity-

  • Are there existing virtual IXs passing real traffic, or is this more along the lines of personal/test/play configs?
  • What is a reasonable definition of "virtual IX" here- does it include situations where one IX's reach is extended via real but non-IX-controlled paths, or solely tunnel connections?
  • Are there any cases where an IX might not be "virtual", but doesn't have a facility listed? Or inversely, IXs that are most certainly "virtual"/tunneled/other but would be incorrectly identified as "real" by way of listing a facility?

cc @job @martinhannigan

@job
Copy link
Contributor

job commented Mar 14, 2024

Seeking some clarity-

  • Are there existing virtual IXs passing real traffic, or is this more along the lines of personal/test/play configs?

What's play for one might be real for another - very subjective :-)

  • What is a reasonable definition of "virtual IX" here- does it include situations where one IX's reach is extended via real but non-IX-controlled paths, or solely tunnel connections?

It is challenging to come up with a useful definition: there are a ton of large IXPs which are reached via non-IX-controlled tunnels (usally, MPLS or VXLAN, also known as "remote peering"). Whenever folks exchange Internet traffic, who is PeeringDB to judge how exactly it is transported?

  • Are there any cases where an IX might not be "virtual", but doesn't have a facility listed? Or inversely, IXs that are most certainly "virtual"/tunneled/other but would be incorrectly identified as "real" by way of listing a facility?

All permutations seem to exist, and no harm seems to come from the diversity of the ecosystem. A virtual selector seems to vague to me, because so much of Internet infrastructure is virtual to some degree (a vlan, a pseudo-wire, etc).

Users who are not interested in a given IXP will just ignore that IXP, whatever the reason.

@jackcarrozzo
Copy link

@martinhannigan, as the ticket opener, can you describe what part of your use case isn't sufficiently covered using the lack of facility as your "flag", or what the use case is that would be better served by having a separate object field / virtual facility / etc? Is it for easy use as a search predicate?

@job
Copy link
Contributor

job commented Mar 14, 2024

I think the ticket at hand relates to the following other tickets:

#992
#1236

I think PDB needs to aspire to be consistent and neutral. Because of the aforementioned, I suggest to imagine what would happen if PDB offers subjective selectors. Such selectors seem to facilitate separation of so-called "virtual" from "the rest" ... in an entirely digital world) and this has proven to be challenging so far, thus such selectors meaning nothing.

An IXP's "virtuality" probably isn't a binary state: one could imagine upcoming or diminishing IXP offering "tunnels", or "virtual cross-connects", or whatever those are technically to try to get more traction; in addition to fiber optical or electrical interconnection - perhaps the IXP offers service via partners who use Virtual LAN layer-2 switches to distribute... ?

OP talks about 'the true definition' in post 1, and later on seems to suggest definition is out of scope - this to me seem self-contradictory, but then my interpretation of it being self-contradictory would align with my observation that this concept might be problematic to support subjective selectors in search queries - because of lack of perspective on common denominators.

@martinhannigan
Copy link
Author

martinhannigan commented Mar 14, 2024 via email

@martinhannigan
Copy link
Author

martinhannigan commented Mar 14, 2024 via email

@job
Copy link
Contributor

job commented Mar 14, 2024 via email

@arnoldnipper
Copy link
Contributor

We can't tell the difference between a virtual IX or a physically present IX without a ton of effort.

Why then waste time and effort?

@martinhannigan
Copy link
Author

martinhannigan commented Mar 14, 2024 via email

@jackcarrozzo
Copy link

PC call: internally generated "has_no_facilities" flag that ,makes it easy to find "virtuality" via api, for objs with no fac listed?

@arnoldnipper
Copy link
Contributor

This would be the same as fac_count == 0. So why adding redundant information?

@martinhannigan
Copy link
Author

martinhannigan commented Apr 5, 2024 via email

@arnoldnipper
Copy link
Contributor

fac_count is a read-only, system generated value. I.e.

  • has_no_facilities == true <==> fac_count == 0
  • has_no_facilities== false <==> fac_count > 0

@martinhannigan
Copy link
Author

martinhannigan commented Apr 6, 2024 via email

@arnoldnipper
Copy link
Contributor

Again, there is no need adding a flag for automation as this information is already there. On the other hand, saying that every IX which does not have a facility is a virtual IX, clearly is wrong. I've named a lot of IXes which are so-called physical IXes but don't have a facility associated.

If we want to flag those IXes in the GUI we can do, but should not call them "virtual IXes"

But more important is what @job said: Wasn’t this discussed a number of times before, with the main issue being that it’s hard to define what a “virtual” IX is?

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

No branches or pull requests

6 participants