Skip to content

rework termination mac handling - #396

Draft
KanjiMonster wants to merge 1 commit into
mainfrom
jogo_termmac_rework
Draft

rework termination mac handling#396
KanjiMonster wants to merge 1 commit into
mainfrom
jogo_termmac_rework

Conversation

@KanjiMonster

@KanjiMonster KanjiMonster commented Oct 27, 2022

Copy link
Copy Markdown
Contributor

Rework termination mac handling by tying termination mac entries to
interfaces:

  • create entries on interface creation
  • remove them on interface deletion

with the values of

  • port_id, vid 0 for the base port/bond interface (specific port, any vlan)
  • port_id, vid for vlan interfaces on top of those (specific port, specific vlan)
  • port_id 0, vid 0 for the base bridge interface (any port, any vlan)
  • port_id 0, vid for vlan interface on top of bridge (any port, specific vlan)

Since these combinations are unique, we can just add/remove the entries
without the need of having refcounts.

Advantages:

  • simplication of code
  • ip addresses assigned to lo will just work

Disadvantages:

  • higher use of termination mac flows, which are limited (0.5k to 1k),
    so only (256 - ports) to (512 - ports) number of vlan/bridge/bond
    interfaces are supported
  • (this is a lie though, since both termination mac entries for an
    interface share the same underlying resource)

Open Questions:

  • Do other parts need termination mac entries, or the underlying
    resources?

Signed-off-by: Jonas Gorski jonas.gorski@bisdn.de

@KanjiMonster
KanjiMonster marked this pull request as draft October 27, 2022 09:01
@KanjiMonster KanjiMonster changed the title Jogo termmac rework rework termination mac handling Oct 27, 2022
@KanjiMonster
KanjiMonster force-pushed the jogo_termmac_rework branch 2 times, most recently from 3400a47 to ea27328 Compare December 13, 2022 09:51
Base automatically changed from baseboxd-2.0 to main March 17, 2023 16:09
Rework termination mac handling by tying termination mac entries to
interfaces:

* create entries on interface creation
* remove them on interface deletion

with the values of
* port_id, vid 0 for the base port/bond interface (any vid)
* port_id, vid for vlan interfaces on top of those
* port_id 0, vid 0 for the base bridge interface (any port, any vid)
* port_id 0, vid for vlan interface on top of bridge

Since these combinations are unique, we can just add/remove the entries
without the need of having refcounts.

Advantages:
* simplication of code
* ip addresses assigned to lo will just work

Disadvantages:
* higher use of termination mac flows, which are limited (0.5k to 1k),
  so only (256 - ports) to (512 - ports) number of vlan/bridge/bond
  interfaces are supported
* (this is a lie though, since both termination mac entries for an
  interface share the same underlying resource)

Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
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.

1 participant