Skip to content

vswitch: add vswitch component#685

Open
JDuchniewicz wants to merge 35 commits intomainfrom
jakub/vswitch
Open

vswitch: add vswitch component#685
JDuchniewicz wants to merge 35 commits intomainfrom
jakub/vswitch

Conversation

@JDuchniewicz
Copy link
Copy Markdown
Contributor

@JDuchniewicz JDuchniewicz commented Mar 30, 2026

Adds a vswitch component following #636

Allows for connecting up to 62 clients and one TX/RX Virt pair with the vswitch. Tested with PR: au-ts/libvmm#207 and depends on microkit_sdf_gen PR: au-ts/microkit_sdf_gen#31

The support for connecting vswitches back to back might be added later.

@midnightveil
Copy link
Copy Markdown
Contributor

midnightveil commented Mar 30, 2026

You appear to have broken all the echo server examples per CI.

It would be good to add an example/CI test for this. Same applies to libVMM itself.

(My other question: is vswitch a driver or an (Lions)OS component...?)

@JDuchniewicz
Copy link
Copy Markdown
Contributor Author

JDuchniewicz commented Mar 30, 2026

You appear to have broken all the echo server examples per CI.

It would be good to add an example/CI test for this. Same applies to libVMM itself.

Yes, I will add the necessary test, example is in libVMM. Should we also have one here?

(My other question: is vswitch a driver or an (Lions)OS component...?)

I don't foresee running it alone, it should be a plug-and-play component chosen during writing of the meta.py file.

@midnightveil
Copy link
Copy Markdown
Contributor

I don't foresee running it alone, it should be a plug-and-play component chosen during writing of the meta.py file.

What I mean is "does it make more sense as part of LionsOS than sDDF"?

@JDuchniewicz
Copy link
Copy Markdown
Contributor Author

I don't foresee running it alone, it should be a plug-and-play component chosen during writing of the meta.py file.

What I mean is "does it make more sense as part of LionsOS than sDDF"?

I don't know where we draw the line between, this is "driver/should be in sDDF" and "this is too high-level for sDDF". I presume current components are crucial enough to be here. This is somewhere in-between as it is an optional system component.

Comment thread include/sddf/network/mac802.h
Comment thread drivers/network/imx/ethernet.c Outdated
Comment thread include/sddf/network/mac802.h Outdated
Comment thread include/sddf/network/queue.h Outdated
Comment thread network/components/virt_tx.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread include/sddf/network/config.h Outdated
@Kswin01
Copy link
Copy Markdown
Contributor

Kswin01 commented Mar 30, 2026

I'll have a proper read through the vswitch implementation later, but a few nitpicks of the surrounding updates

@JDuchniewicz
Copy link
Copy Markdown
Contributor Author

@Courtney3141 I think it's prudent to first merge this, then create a new PR for the new example with 2 echo_server's as there might be a substantial amount of new files. Also, libvmm depends on it and not necessarily on the presence of the sddf example.

@Courtney3141
Copy link
Copy Markdown
Contributor

@Courtney3141 I think it's prudent to first merge this, then create a new PR for the new example with 2 echo_server's as there might be a substantial amount of new files. Also, libvmm depends on it and not necessarily on the presence of the sddf example.

Agreed.

Copy link
Copy Markdown
Contributor

@Courtney3141 Courtney3141 left a comment

Choose a reason for hiding this comment

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

Should have given you enough feedback to work on here! This is a great implementation, most my comments are just about small details. I really like how you have structured your vswitch code in particular.

Comment thread include/sddf/network/config.h Outdated
Comment thread include/sddf/network/config.h Outdated
Comment thread include/sddf/network/config.h Outdated
Comment thread include/sddf/network/config.h Outdated
Comment thread include/sddf/network/config.h Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c
Comment thread drivers/network/imx/ethernet.c
Comment thread include/sddf/network/config.h Outdated
Comment thread network/components/virt_tx.c Outdated
Comment thread include/sddf/network/config.h Outdated
Comment thread include/sddf/network/config.h Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c
Comment thread network/components/vswitch.c
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
@JDuchniewicz JDuchniewicz changed the title vswitch: Add vswitch component vswitch: add vswitch component Apr 16, 2026
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Comment thread network/components/vswitch.c Outdated
Signed-off-by: Jakub Duchniewicz <j.duchniewicz@unsw.edu.au>
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.

5 participants