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

Set bandwidth on BGP links to IX #30

Open
kevin-w-du opened this issue Jul 22, 2021 · 2 comments
Open

Set bandwidth on BGP links to IX #30

kevin-w-du opened this issue Jul 22, 2021 · 2 comments

Comments

@kevin-w-du
Copy link
Member

This is a feature for future implementation

To emulate the network more realistically, we may want to set the bandwidth on network links, especially the BGP router's link to the Internet exchange. We can use the tc command to add delay to those links. This could be an interesting feature to implement in the future (we probably don't need it now).

Not sure whether bandwidth is a criterion when BGP conducts path selection. If so, this could definitely make the emulation more interesting.

@magicnat
Copy link
Member

There is a way to set link speed for each Interface: https://github.com/seed-labs/SEEDEmulator/blob/master/seedemu/core/Node.py#L122

However, since joinNetwork call no longer returns an Interface (networks are only really "connected" during render now), there is no easy way to access the method and change interface speed.

Maybe make the Interface attaches to a network with a name string instead of the Network object and resolve that Network during render instead? This way we can return a Interface for changing link settings. This shouldn't be too hard to change.

BGP however does not consider bandwidth during path selection. These are usually done by tweaking LOCAL_PREF and maybe MED manually (to external peers), or with some automated MPLS-based traffic engineering (in internal networks).

@kevin-w-du
Copy link
Member Author

We will put this on hold, unless you think the change to the Interface is important for the entire project. I just want to avoid making ad hoc changes. This feature at this point is not very important.

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

No branches or pull requests

2 participants