Home › Forums › FABRIC General Questions and Discussion › Facility port and p4
- This topic has 1 reply, 2 voices, and was last updated 2 days, 19 hours ago by
Benjamin Formby.
-
AuthorPosts
-
September 5, 2025 at 1:28 pm #8892
slice ID: 998af367-fd08-4167-9c70-1aa0d82f6ead
Hi,
I have a question regarding an experimental setup with a node, a facility port, and a P4 switch in between. My issue is that I am unable to create a connection between the facility port and the node.
To provide some context, I was able to replicate the “facility_port” example for FIU and can ping the FABRIC node from FIU, and vice versa.
I can also replicate “Layer 2 Network Topology with Edgecore Wedge100BF-32X P4 Tofino Switch on FABRIC,” where a P4 switch is connected to two nodes that can ping each other.
My goal in this experiment is to combine the two: instead of connecting two nodes to the P4 switch, I want to replace one of the nodes with a facility port. After creating the node and facility port, I set up SDX for the FIU facility port and defined the physical ports. Then I set up the P4 switch so it could transmit packets. However, I have not been able to ping the FIU server from the node or vice versa (slice ID: b6b88889-1024-451a-8d5c-727a465c3e7d). Below is how I set up the slice (please see the slice for more details):
facility_port_vlan=’4017′
facility_port_name = “AmLight-EXP-Layer2-FIU”
slice_name = “DDoS with p4”
node1_name = “DestNode”
p4_name = “P4”
network1_name = “net1”
network2_name = “net2”
model = “NIC_Basic”# print(f”VM Site: {site1}”)
# print(f”P4 Site: {site2}”)
# print(f”Facility Port Site: {facility_port_site}”)from ipaddress import ip_address, IPv4Address, IPv6Address, IPv4Network, IPv6Network
# Create Slice
slice = fablib.new_slice(name=slice_name)# Create Node 1 and its links
node1 = slice.add_node(name=node1_name, site=site1)
iface1 = node1.add_component(model=model, name=”nic1″).get_interfaces()[0]
# iface1.set_mode(“config”)# Optional: Uncomment if Node1 needs an IP address
# iface1.set_ip_addr(IPv4Address(“192.168.0.2”))# Create P4 switch and its links
p4 = slice.add_switch(name=p4_name, site=site2)
iface2 = p4.get_interfaces()[0] # Connects to net1
iface3 = p4.get_interfaces()[1] # Connects to net2# Set VLAN tag on P4 switch’s interface (iface3) to match facility port
iface3.set_vlan(facility_port_vlan) # Sets VLAN to ‘4018’ (string)# Add Facility Port
facility_port = slice.add_facility_port(name=facility_port_name, site=facility_port_site, vlan=facility_port_vlan)
facility_port_interface = facility_port.get_interfaces()[0]# Create Networks
net1 = slice.add_l2network(name=network1_name, subnet=IPv4Network(“192.168.1.0/24”))
net1.add_interface(iface1)
net1.add_interface(iface2)
net2 = slice.add_l2network(name=network2_name, subnet=IPv4Network(“192.168.1.0/24″)) # Layer 2 network for facility port
net2.add_interface(iface3)
net2.add_interface(facility_port_interface)# Submit Slice Request
try:
slice.submit()
except Exception as e:
print(f”Slice submission failed: {e}”)September 5, 2025 at 2:22 pm #8893Hello Hadi,
An announcement was posted earlier about FIU dataplane down which could be affecting your experiment. Updates should be posted on this thread about when it will be fixed:
Best,
Benjamin
-
AuthorPosts
- You must be logged in to reply to this topic.