Skip to content

[fw] refactor incoming Interest processing #179

Open
r2dev2 wants to merge 34 commits intonamed-data:dv2from
r2dev2:r2dev2/three-pipeline-forwarding
Open

[fw] refactor incoming Interest processing #179
r2dev2 wants to merge 34 commits intonamed-data:dv2from
r2dev2:r2dev2/three-pipeline-forwarding

Conversation

@r2dev2
Copy link
Copy Markdown

@r2dev2 r2dev2 commented Mar 23, 2026

image
  • fixes the compiler errors with the BIER merge
  • refactors forwarding plane into pipeline
  • registers the localhop / other control routes as multicast in PET
  • makes the multicast forwarding strategy table - everything hard-coded right now
  • delete old broadcast/replicast strategy - replicast will not fit into this clean pipeline so removing for now

@r2dev2 r2dev2 marked this pull request as ready for review April 1, 2026 16:23
@r2dev2
Copy link
Copy Markdown
Author

r2dev2 commented Apr 1, 2026

requesting @tianyuan129 review

e2e passes locally but not in ci. debugging why ci is failing but that can be addressed in new pr

@tianyuan129 tianyuan129 changed the title [fw] fix BIER compile + refactor forwarding plane into pipeline [fw] refactor incoming Interest processing Apr 2, 2026
core.Log.Debug(s, "No usable nexthop for Interest - DROP", "name", packet.Name)
}

func (s *BestRoute) AfterReceiveMulticastInterest(
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Why a bestroute strategy can receive a multicast Interest? The interest is steered toward the multicast pipeline.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

It is implementing a base method of Strategy class. I needed a different signature for multicast strategies so I made a new method AfterReceiveMulticastInterest and log an error in the functions that should not be called. The surrounding logic prevents them from being called so this function is never called.

nextER []enc.Name,
nexthops []StrategyCandidateHop,
) {
core.Log.Error(s, "BierStrategy does not support AfterReceiveInterest (unicast)",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Same here. It should be already insulated from unicast.

}
}

func (s *Multicast) AfterReceiveMulticastInterest(
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I am a bit lost, I thought the word "multicast" is elevated to a forwarding pipeline, and stop being a strategy?

return
}

table.MulticastStrategyTable.SetStrategyEnc(params.Name, params.Strategy.Name)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looking back, should we call it a BIFTStrategy (in contrast to FibStrategy)?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I think MulticastStrategy is more fitting as only BIER makes use of BIFT and the table contains other strategies like broadcast.

entries := table.FibStrategyTable.GetAllForwardingStrategies()
var entries []table.FibStrategyEntry
name := LOCAL_PREFIX.Append(
enc.NewGenericComponent("strategy-choice"),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Should we make it explicit it it a unicast strategy choice?

@tianyuan129
Copy link
Copy Markdown
Collaborator

OK. now the the question is can we fix e2e?

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.

3 participants