1. Xusheng Ai

Xusheng Ai

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 55 total)
  • Author
    Posts
  • in reply to: NDN connection on DALL is unavailable #7140
    Xusheng Ai
    Participant

      Thanks for replying. We figured out that incorrect IP link setups caused the problem.

      in reply to: Request: long-lived API Tokens #6474
      Xusheng Ai
      Participant

        Thanks for the reply. I will keep a look at the new Fablib interface.

        Xusheng Ai
        Participant

          Fixed the problem by re-configure the environment.

          in reply to: A public IP for the Fabric node #4678
          Xusheng Ai
          Participant

            The problem is solved by updating the fabrictestbed-extensions to 1.5.0.

            in reply to: A public IP for the Fabric node #4677
            Xusheng Ai
            Participant

              Hello yoursunny and Komal,

              Thanks for the replies. We just got the Net.FABNetv4Ext tag added to the project.
              I did try both of the methods mentioned above. However, it showed the same error when I submit the slice request. Please see the error detail below:

              Cell In[18], line 7
                    5 iface1 = node.add_component(model='NIC_Basic', name = node_nic_name).get_interfaces()[0]
                    6 # Network
              ----> 7 net1 = slice.add_l3network(name=network_name, interfaces=[iface1], type= 'IPv4Ext')
                    8 slice.submit()
              
              File ~/work/Long_liveslice/plugins.py:71, in Plugins.add_l3network(self, name, interfaces, type, technology)
                   68 def add_l3network(
                   69     self, name: str = None, interfaces: List[Interface] = [], type: str = "IPv4",
                   70     technology: str = None) -> NetworkService:
              ---> 71     return NetworkService.new_l3network(
                   72         slice=self, name=name, interfaces=interfaces, type=type, technology=technology
                   73     )
              
              File ~/work/Long_liveslice/plugins.py:104, in Plugins.new_l3network(slice, name, interfaces, type, technology)
                   96     raise Exception(
                   97         "Invalid L3 Network Type: Allowed values [IPv4, IPv4Ext, IPv6, IPv6Ext, L3VPN]"
                   98     )
                  100 # TODO: need a fabnet version of this
                  101 # validate nstype and interface List
                  102 # NetworkService.validate_nstype(nstype, interfaces)
              --> 104 return NetworkService.new_network_service(
                  105     slice=slice, name=name, nstype=nstype, interfaces=interfaces, technology=technology
                  106 )
              
              File ~/work/Long_liveslice/plugins.py:146, in Plugins.new_network_service(slice, name, nstype, interfaces, user_data, technology)
                  139 fim_network_service = slice.topology.add_network_service(
                  140     name=name, nstype=nstype, interfaces=fim_interfaces, technology=technology
                  141 )
                  143 network_service = NetworkService(
                  144     slice=slice, fim_network_service=fim_network_service
                  145 )
              --> 146 network_service.set_user_data(user_data)
                  147 network_service.init_fablib_data()
                  149 return network_service
              
              AttributeError: 'NetworkService' object has no attribute 'set_user_data'
              in reply to: Disk-to-Disk network transfer files between Fabric nodes #4148
              Xusheng Ai
              Participant

                On step 4, do we need to generate the ssh keys on the node itself or use the keys associated with the slice?

                Never mind, thank you very much.

                in reply to: Disk-to-Disk network transfer files between Fabric nodes #4147
                Xusheng Ai
                Participant

                  On step 4, do we need to generate the ssh keys on the node itself or use the keys associated with the slice?

                  in reply to: go does not work with node.execute API #4008
                  Xusheng Ai
                  Participant

                    This is the updated code but it still does not work with the same error:

                    try:
                        for node in slice.get_nodes():
                            stdout, stderr = node.execute('curl -O -L "https://golang.org/dl/go1.19.5.linux-amd64.tar.gz"')
                            stdout, stderr = node.execute('tar -xf "go1.19.5.linux-amd64.tar.gz"')              
                            stdout, stderr = node.execute('sudo mv -v go /usr/local')
                            stdout, stderr = node.execute('echo "export GOPATH=$HOME/go" >> ~/.bashrc')
                            stdout, stderr = node.execute('echo "export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin" >> ~/.bashrc')
                            stdout, stderr = node.execute('echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc')
                            stdout, stderr = node.execute('source ~/.bashrc')
                            stdout, stderr = node.execute('go install github.com/named-data/YaNFD/cmd/yanfd@latest')  
                            
                    except Exception as e:
                        print(f"Exception: {e}")
                    • This reply was modified 1 year, 8 months ago by Xusheng Ai.
                    in reply to: File save error and Load file error #3727
                    Xusheng Ai
                    Participant

                      We are trying to upload one 1G bio-related file to the slice nodes through JupyterHub. Since there is no way to upload files from local to Fabric nodes directly. I checked the disk space that we have 1G available disk space in total. If it was possible to create a persistent storage volume in the testbed, it will be much appreciated.

                      in reply to: File save error and Load file error #3725
                      Xusheng Ai
                      Participant

                        Is there any chance that we could have a larger disk on JupyterHub?

                        in reply to: File save error and Load file error #3724
                        Xusheng Ai
                        Participant

                          I delete some old files, and it works well right now. Thank you so much for the hints.

                          Xusheng Ai
                          Participant

                            Thank you so much for the information.

                            Xusheng Ai
                            Participant

                              Yes, The information can be printed.
                              When we create layer 3 network connection, we ran the command:

                              slice.get_nodes()[2].execute('nfdc face create udp6://[%s]' %slice.get_nodes()[1].get_management_ip())
                              

                              So we didn’t have to copy and past the network information.

                              We was wondering if we could do the same for Layer 2 network connection like:

                              slice.get_nodes()[1].execute('nfdc face create remote ether://[%s] local dev://[%s]' [MAC address],[interface.get_os_interface()])
                              

                              But we are not sure how to acquire MAC address through FABlib API

                              • This reply was modified 1 year, 11 months ago by Xusheng Ai.
                              • This reply was modified 1 year, 11 months ago by Xusheng Ai.
                              • This reply was modified 1 year, 11 months ago by Xusheng Ai.
                              Xusheng Ai
                              Participant

                                Is it possible that we can get the MAC address with corresponding NIC?
                                For example, below is the information of node 1:

                                Name	        Node   Network Bandwidth VLAN	MAC	                Device	Device
                                Node1-nic1_4-p1	Node1	net4	100	None	06:AC:16:7B:38:FF	ens7	ens7
                                Node1-nic1_2-p1	Node1	net2	100	None	06:BA:BC:72:F8:34	ens8	ens8
                                Node1-nic1_3-p1	Node1	net3	100	None	0A:ED:E0:7F:C2:B5	ens10	ens10
                                Node1-nic1_1-p1	Node1	net1	100	None	0A:70:23:DD:1F:B7	ens9	ens9

                                If there is a way that we can get the MAC address of these four NICs?

                                • This reply was modified 1 year, 11 months ago by Xusheng Ai.
                                Xusheng Ai
                                Participant

                                  For some reason, now we have to manually turn up the interface.
                                  You can first install
                                  sudo apt install -y net-tools

                                  and

                                  sudo ifconfig ens7 up && sudo ifconfig ens8 up && sudo ifconfig ens9 up && sudo ifconfig ens10 up

                                  Alternatively you can use the code below, to turn on all interfaces
                                  try:
                                  for node in slice.get_nodes():
                                  print(“—-“)
                                  print(“Node:”)
                                  print(f” Name : {node.get_name()}”)
                                  for component in node.get_components():
                                  print(f” Name : {component.get_name()}”)
                                  for interface in node.get_interfaces():
                                  print(f” Name : {interface.get_name()}”)
                                  stdout, stderr = node.execute(f’sudo apt install -y net-tools && sudo ifconfig {interface.get_os_interface()} up ‘)
                                  except Exception as e:
                                  print(f”Fail: {e}”)
                                  traceback.print_exc()

                                  Thanks for the information!
                                  Both methods work well — manually turn up the interface and the code turns on all interfaces.

                                Viewing 15 posts - 1 through 15 (of 55 total)