Forum Replies Created
-
AuthorPosts
-
I’m seeing MTU issues on the data plane network between SALT and UTAH.
The scenario is using NIC_ConnectX_5 NICs and L2PTP network service.I increased the MTU of VLAN netifs to 9000, and assigned IPv4 addresses to both ends.
The maximum ICMP ping size that can pass through is 1472.ubuntu@9bf529e4-3efc-4988-a9f8-5089ccfa08af-nb:~$ ping -M do -c 4 -s 1472 192.168.8.1 PING 192.168.8.1 (192.168.8.1) 1472(1500) bytes of data. 1480 bytes from 192.168.8.1: icmp_seq=1 ttl=64 time=0.348 ms 1480 bytes from 192.168.8.1: icmp_seq=2 ttl=64 time=0.225 ms 1480 bytes from 192.168.8.1: icmp_seq=3 ttl=64 time=0.227 ms 1480 bytes from 192.168.8.1: icmp_seq=4 ttl=64 time=0.192 ms --- 192.168.8.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3051ms rtt min/avg/max/mdev = 0.192/0.248/0.348/0.059 ms ubuntu@9bf529e4-3efc-4988-a9f8-5089ccfa08af-nb:~$ ping -M do -c 4 -s 1473 192.168.8.1 PING 192.168.8.1 (192.168.8.1) 1473(1501) bytes of data. --- 192.168.8.1 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3074ms
there is no way to upload files from local to Fabric nodes directly
It’s possible in two ways:
- Host your file with an HTTPS server somewhere on the Internet (with HTTP Basic authentication if desired), and download it on the nodes with wget command.
- Add the nodes into your local ~/.ssh/config with ProxyJump through the bastion, and then run scp to upload the file to the nodes.
I’ve done both in different experiments, but only the first one can be automated.
NIC_Basic is a Virtual Function (VF) on the ConnectX-6 Ethernet adapter. The hardware Ethernet adapter is shared among many VFs, and it determines which VF shall receive an incoming packet by matching the destination address. Therefore, NIC_Basic cannot receive Ethernet frames whose destination address differs from its own address.
it seems as if packets are filtered by MAC learning on the L2Bridge type network
What observation led you to this conclusion?
What are you trying to do, how it behaved, and how do you expect it to behave?
January 26, 2023 at 1:30 pm in reply to: using the new(er) versions networks are not properly created in my code. #3663When you invoke
slice.submit(), thesliceobject (and the associated nodes, links, intfs) will not auto-update.
You need to do anotherslice = fablib.get_slice(name=slice.get_name())(and re-retrieve enclosed nodes, link, intfs if needed) to obtain updated information.I just noticed this:
Since FABLib v1.4, API documentation is hosted at https://fabric-fablib.readthedocs.io/.
Older version of FABLib API documentation is at https://learn.fabric-testbed.net/docs/fablib/fablib.html.Can you add a note on top of the “older version” page, pointing to the v1.4 docs?
I have bookmarked the “older version” page previously, and have been wondering why it doesn’t update, until now.
I suppose some others may have done the same.January 15, 2023 at 9:04 pm in reply to: NIC information didn’t show up correctly when ssh to the nodes #3601ifconfig is deprecated since Ubuntu 16.
Try ip link or ip addr command.
November 10, 2022 at 6:16 pm in reply to: Token expired and cannot generate new token on Fabric CM #3501I faced the same issue today.
I found this method effective:1. File – Hub Control Panel
2. Stop My Server
3. Logout
4. Login againYMMV
I know for a fact we have folks using DPDK on the testbed with all three NIC types
Yeah, that’s me.
All three NIC types can support most DPDK features, but for NIC_Basic you must use the assigned MAC address and cannot use other MAC addresses.You would need linux-image-generic for the kernel module and libibverbs-dev to enable DPDK net_mlx5 driver.
In FABlib script, you can insert this step, afterslice.submit()and before building DPDK:execute_threads = {} for node in slice.get_nodes(): execute_threads[node] = node.execute_thread(f''' sudo apt update sudo DEBIAN_FRONTEND=noninteractive apt full-upgrade -y sudo DEBIAN_FRONTEND=noninteractive apt install -y –no-install-recommends libibverbs-dev linux-image-generic jq sudo reboot ''') for thread in execute_threads.values(): thread.result() slice.wait_ssh(progress=True)I see indentation errors in the two snippets above.
Also, there’s no Preview button so that it’s impossible to know whether my content would render correctly before publishing.
We have on the roadmap support for ERO (explicit route objects) so that you can have your traffic take the ‘scenic route’ as you say
This will be very useful.
You can on your own add delay to your traffic using traditional Linux tc tools.
This would not work well in speeds higher than 10 Gbps.
running Iperf I saw the max bandwidth I can get in VMs is around 19-20 Gbps
You might get higher speeds if you request dedicated NIC.
I can get 60 Gbps on ConnectX-6 dual-port 100 Gbps and 33 Gbps on ConnectX-5 dual-port 25 Gbps, tested in SALT location.
This number is “goodput” reported by my DPDK-based program, and it’s the sum of traffic in both directions.
iperf3 is unidirectional traffic so it could be half of this.I agree that knowing the physical topology may be useful, especially when the slice spans multiple sites.
For example, if I create a slice with L2PTP link between STAR and UCSD, there are multiple possible paths, and it’s good to know which path my traffic is taking.Add onto this, it’s useful to have observability into other traffic on the same links.
The link between WASH and STAR has 100 Gbps capacity.
When I benchmark my app running over L2PTP link between these two sites, I may receive throughput of 60 Gbps.
This could be caused by issues in my application (e.g. congestion control algorithm not tuned for >10ms RTT), or caused by other competing traffic on the link.
If FABRIC portal can include a diagram of near-realtime link utilization, I can better understand which one is the more likely cause.In another angle, it’s also useful to be able to control the physical topology.
Suppose I want to develop my congestion control algorithm over a high latency link, the longest RTT can be achieved today is between MASS and UCSD.
If I can specify the physical topology as part of slice definition, I could make a link to take a scenic route such as WASH-ATLA-DALL-LOSA-SALT-KANS-STAR, which provides a longer natural latency.Can you enable Markdown too?
Both GitHub and Jupyter have Markdown, so more developers are already familiar with it.The web portal login has 1-hour timeout. When it reaches 1 hour, you’ll still see you are logged in, but you cannot do anything.
You have to click logout and then login again. After that, you can see your slices or delete them normally.
I consider this a portal bug. It should keep the user logged in for as long as the page is open. If servers side reports the login has expired, the client side should automatically display “login” button instead of “logout” button.
It’s very difficult to write/share code snippets on this forum. Python indentation is always messed up.
Maybe operator should switch to a different forum software? Vanilla and Discourse have better UX.
-
AuthorPosts