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

INT extensions for domain specific features #54

Merged

Conversation

rsivakolundu
Copy link
Contributor

No description provided.

telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
Removed the "S" bit in the first part of the header. Added Domain Specific Field.
Corrected typo
Corrected typo : requring  - requiring
Removed the "S" bit.
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
except if bit 6 is set, which requires 8 bytes of metadata. Per-hop
metadata length is set accordingly at the INT source.

Bits 0 - 13 are Baseline INT Instructions and Bit 14, Domain Specific Instruction.
Copy link
Contributor

Choose a reason for hiding this comment

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

"Bit 14 is Domain ..."

Copy link
Contributor

Choose a reason for hiding this comment

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

minor nit, let's correct.

Copy link
Contributor

Choose a reason for hiding this comment

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

Also bit 14 should be added to the list of bits above.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed Bit 14 and added text to address Domain Specific processing

Copy link
Contributor

@jklr jklr left a comment

Choose a reason for hiding this comment

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

Do we want to leave some notes how it's related to the Domain Specific Extension of the report format?

rsivakolundu and others added 2 commits December 11, 2019 13:12
Removed Bit 14: Domain Specific Instruction
- Removed "Rep" 
- Removed special "Synthetic/Probe sections";  replaced with clarification of using C bit for such traffic 
- Allow Transit nodes to do OAM generation and NW Event Detection
- Allow Transit nodes to be INT Source for the Domain-specific parts 
- Some minor cleanup, length fixes in examples, etc.
Copy link
Contributor

@mickeyspiegel mickeyspiegel left a comment

Choose a reason for hiding this comment

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

I see two major differences from the IETF's IOAM namespace beyond the additional fields:

  1. When a transit node receives an INT packet with a Domain Specific ID that it does not recognize, is it still allowed to add its metadata to the packet?
  2. Does the Domain Specific ID have any bearing on the semantics and/or metadata units? In the IETF this seems to be the main point of namespace.
    It would be good to hash this out further, either aligning with the IETF or clarifying at least to ourselves if not in the spec, why should this be different?

telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Instruction Bitmap | Reserved |
| DS Instruction | DS Flags |
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: whitespace at the end of the line

Copy link
Contributor

Choose a reason for hiding this comment

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

You added whitespace at the end of the line. I thought it should be removed.

telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
except if bit 6 is set, which requires 8 bytes of metadata. Per-hop
metadata length is set accordingly at the INT source.

Bits 0 - 13 are Baseline INT Instructions and Bit 14, Domain Specific Instruction.
Copy link
Contributor

Choose a reason for hiding this comment

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

Also bit 14 should be added to the list of bits above.

telemetry/specs/INT.mdk Show resolved Hide resolved
@@ -1141,9 +1174,11 @@ INT Metadata Header and Metadata Stack, followed by TCP payload:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=1 | 0 |0|0|0| Reserved | HopML=2 |RemainingHopC=6|
| Ver=2 | 0 |0|0|0|0| Reserved | HopML=2 |RemainingHopC=6|
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see any definition of a new flag bit after the "M" bit.
The only change here should be "Ver=1" --> "Ver=2".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What Flag bit after M are you referring to?

Copy link
Contributor

Choose a reason for hiding this comment

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

This change adds a fourth 0 before the Reserved field. That does not belong.

@@ -1196,9 +1231,11 @@ INT Metadata Header and Metadata Stack:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=1 | 0 |0|0|0| Reserved | HopML=2 |RemainingHopC=5|
| Ver=2 | 0 |0|0|0|0| Reserved | HopML=2 |RemainingHopC=5|
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see any definition of a new flag bit after the "M" bit.
The only change here should be "Ver=1" --> "Ver=2".

@@ -1253,9 +1290,11 @@ INT Metadata Header and Metadata Stack:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=1 | 0 |0|0|0| Reserved | HopML=2 |RemainingHopC=5|
| Ver=2 | 0 |0|0|0|0| Reserved | HopML=2 |RemainingHopC=5|
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see any definition of a new flag bit after the "M" bit.
The only change here should be "Ver=1" --> "Ver=2".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed the new flag bit. We need to discuss the need for a bit to indicate the VxLAN vs VxLAN GPE encap of the incoming packet. Do we need that indication in the header for the sink node processing.

Copy link
Contributor

Choose a reason for hiding this comment

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

We're addressing the GPE discussion and flag in #58.
Let's merge this PR first into mater and rebase #58.

telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
@jklr jklr mentioned this pull request Jan 17, 2020
Copy link
Contributor

@mickeyspiegel mickeyspiegel left a comment

Choose a reason for hiding this comment

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

I see two major differences from the IETF's IOAM namespace beyond the additional fields:

  1. When a transit node receives an INT packet with a Domain Specific ID that it does not recognize, is it still allowed to add its metadata to the packet?
  2. Does the Domain Specific ID have any bearing on the semantics and/or metadata units? In the IETF this seems to be the main point of namespace.
    It would be good to hash this out further, either aligning with the IETF or clarifying at least to ourselves if not in the spec, why should this be different?

Remaining changes are minor.
Remove some duplicate text.
Fix typos.
Fix packet format changes that no longer apply.
Check packet length in example.

telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
@@ -1141,9 +1174,11 @@ INT Metadata Header and Metadata Stack, followed by TCP payload:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver=1 | 0 |0|0|0| Reserved | HopML=2 |RemainingHopC=6|
| Ver=2 | 0 |0|0|0|0| Reserved | HopML=2 |RemainingHopC=6|
Copy link
Contributor

Choose a reason for hiding this comment

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

This change adds a fourth 0 before the Reserved field. That does not belong.

@@ -1194,9 +1212,11 @@ INT Metadata Header and Metadata Stack, followed by TCP payload:
0 1 2 3
Copy link
Contributor

Choose a reason for hiding this comment

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

The length above in the shim header does not seem correct.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed.

telemetry/specs/INT.mdk Outdated Show resolved Hide resolved
@jklr
Copy link
Contributor

jklr commented Jan 23, 2020

@rsivakolundu
I wonder if we can prioritize this PR and merge first than others.
The change of this PR is applied to every INT mode (old and new) and the examples.
If the key section is updated and merged into master, I can update the other examples (under different transports) and add new examples accordingly.

Corrected typos found by Mickey and other changes requested.
@jklr
Copy link
Contributor

jklr commented Jan 28, 2020

Thanks @rsivakolundu for the fixes. They look good to me.
Can you pls comment on @mickeyspiegel 's questions below?
I put my answers.

I see two major differences from the IETF's IOAM namespace beyond the additional fields:

  1. When a transit node receives an INT packet with a Domain Specific ID that it does not recognize, is it still allowed to add its metadata to the packet?

[JK] I didn't think through but the answer depends on the Yang-model-based query mechanism.
Yes, if the collector can ping each device and get the metadata semantics.
No, if not.
Agree we better clarify this in the spec.

  1. Does the Domain Specific ID have any bearing on the semantics and/or metadata units? In the IETF this seems to be the main point of namespace.
    It would be good to hash this out further, either aligning with the IETF or clarifying at least to ourselves if not in the spec, why should this be different?

[JK] associating the domain ID to the metadata semantics seems a good idea to me.

@jklr
Copy link
Contributor

jklr commented Jan 29, 2020

Let's merge it and address the domain ID questions in a separate PR on top of master.

@jklr jklr merged commit 90f3006 into p4lang:master Jan 29, 2020
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.

None yet

4 participants