How to run a dual machine network connected simulation? #1885
-
I want to run a simulation containing two independent machines that are connected together over a network (ethernet). Are there any example configuration files for it, especially using gem5's standard library? I found this sample config Thanks, |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 1 reply
-
This is not supported out of the box with the stdlib, but it should be doable with some specialization. You can take the board that you're using (e.g., X86Board or ArmBoard) and add an ethernet device to the board. I would extend one of these (e.g., Then, you will need to create a new kind of board (i.e., inherit from Obviously, there are a lot of details to fill in here, but hopefully this gets you started. |
Beta Was this translation helpful? Give feedback.
-
Thank you for the prompt and detailed explanation Jason! I’m using |
Beta Was this translation helpful? Give feedback.
-
Hi @powerjg , I just got the chance to follow your instructions, but I’ve run into some questions early on. For the new board, say I initially pursued the second approach (I did override |
Beta Was this translation helpful? Give feedback.
This is not supported out of the box with the stdlib, but it should be doable with some specialization.
You can take the board that you're using (e.g., X86Board or ArmBoard) and add an ethernet device to the board. I would extend one of these (e.g.,
class NetworkX86Board(X86Board)
) and add the ethernet device.Then, you will need to create a new kind of board (i.e., inherit from
AbstractBoard
) that can take multiple "sub boards" and connect the ethernet ports together (e.g., with a switch). Then, in your new board, you will need to overrideconnectThings
and a few other functions to get everything to work. Finally, you can pass that new board (maybe calledCluster
?) to the simulator and t…