Home › Forums › FABRIC General Questions and Discussion › Reserve bandwidth for a slice
- This topic has 5 replies, 3 voices, and was last updated 5 days, 5 hours ago by
Komal Thareja.
-
AuthorPosts
-
August 2, 2024 at 11:46 am #7348
Hi,
I have a slice with 5 nodes on teracore network. I need to conduct several experiments that require a stable and interference-free network environment. I’m looking to ensure that my experimental traffic is prioritized, or isolated, to avoid any interference from other experimenters using the same infrastructure. I’m considering reserving bandwidth for the slice that includes all nodes relevant to my experiments.
Is there any way to reserve bandwidth for a slice on teracore network? If yes, can you please direct me to the relevant page or jupyter notebook?
August 2, 2024 at 12:07 pm #7350Hi Prateek,
We currently do not support guaranteed Quality of Service (QoS), but we do offer best-effort QoS. You can request bandwidth by setting it on your interfaces using a command like
iface.set_bandwidth(10)
.Please note that Basic NICs are essentially Virtual Functions, and the underlying dedicated NIC is shared, so guaranteed bandwidth may not be achievable. However, you should see better performance with
ConnectX_6
orConnectX_5
NICs.Here’s an example slice request for your reference:
#Create Slice
slice = fablib.new_slice(name=slice_name)
# Network
net1 = slice.add_l2network(name=network_name, subnet=IPv4Network("192.168.1.0/24"))
# Node1
node1 = slice.add_node(name=node1_name, site=site)
iface1 = node1.add_component(model='NIC_Basic', name='nic1').get_interfaces()[0]
iface1.set_mode('auto')
iface1.set_bandwidth(10)
net1.add_interface(iface1)
# Node2
node2 = slice.add_node(name=node2_name, site=site)
iface2 = node2.add_component(model='NIC_Basic', name='nic1').get_interfaces()[0]
iface2.set_mode('auto')
iface2.set_bandwidth(10)
net1.add_interface(iface2)
#Submit Slice Request
slice.submit();
Thanks,
KomalAugust 2, 2024 at 12:12 pm #7351Thanks! I will try that.
May 26, 2025 at 11:36 am #8526is this supported by fabnet?
when creating the slice I do:
node = slice.add_node(name=f”{swarm_node_name_prefix}-{idx+1}”, site=site, disk=disk, image=image)
node.add_fabnet()
iface = node.get_interface(network_name=f’FABNET_IPv4_{node.get_site()}’)
iface.set_mode(‘auto’)
iface.set_bandwidth(30)after I am trying to confirm the new bandwidth:
for idx in range(swarm_node_count):
node = slice.get_node(f”{swarm_node_name_prefix}-{idx+1}”)
iface = node.get_interface(network_name=f’FABNET_IPv4_{node.get_site()}’)
iface.set_mode(‘auto’)
iface.set_bandwidth(30)
print(iface.get_bandwidth())
nodes.append(node)but I see that the bandwidth is 100 for the interface, any suggestions? thanks!
May 28, 2025 at 3:15 am #8535#Create Slice slice = fablib.new_slice(name=slice_name) # Network net1 = slice.add_l2network(name=network_name, subnet=IPv4Network(“192.168.1.0/24”)) # Node1 node1 = slice.add_node(name=node1_name, site=site) iface1 = node1.add_component(model=’NIC_Basic’, name=’nic1′).get_interfaces()[0] iface1.set_mode(‘auto’) iface1.set_bandwidth(10) net1.add_interface(iface1) # Node2 node2 = slice.add_node(name=node2_name, site=site) iface2 = node2.add_component(model=’NIC_Basic’, name=’nic1′).get_interfaces()[0] iface2.set_mode(‘auto’) iface2.set_bandwidth(10) net1.add_interface(iface2) #Submit Slice Request slice.submit();
even following your example and using an L2 network and creating/adding the interface, I am unable to set the bandwidth. After the slice has been created I still see the 100 bandwidth for the interface.
-
This reply was modified 5 days, 6 hours ago by
PHILIP CUMMINS.
-
This reply was modified 5 days, 6 hours ago by
PHILIP CUMMINS.
May 28, 2025 at 4:48 am #8538Hi Philips,
At the moment, we do not support guaranteed QoS. This feature will be available soon. In the meantime, you can use tools such as
tc
to manage bandwidth on the VMs.Thanks,
Komal -
This reply was modified 5 days, 6 hours ago by
-
AuthorPosts
- You must be logged in to reply to this topic.