fabric-testbed / fabfed

FABRIC Tool-based Federation Kit for a Testbed of Testbeds
MIT License
2 stars 0 forks source link

SENSE provider integration #11

Closed xi-yang closed 1 year ago

xi-yang commented 2 years ago

We agreed to create a slice / network schema representation of SENSE resources in fabfed format and map that into SENSE service profiles.

For the experiment, I created two example profiles, one with network L2 connection. The other has one end on an end host with IP address being assigned.

Note that: (1) all the greened highlighted fields are editable. For terminals, a select of URIs are provided. For VLANs, a range or a single VLAN can be used. (2) The service FABRIC-L2-Host does not allocate new host. It only configure VLAN and IP address on the DTN host. We can decide how to model that as part of our slice network.

Let's use these two test cases to validate the SENSE provider design.

xi-yang commented 2 years ago
Screen Shot 2022-10-20 at 10 56 50 AM Screen Shot 2022-10-20 at 10 57 13 AM
abessiari commented 2 years ago

Thanks I am able to see the profiles.

xi-yang commented 1 year ago

Here is an example profile that allocates VPC/VM in AWS and provides a direct connect (DX) service for stitching.

Note that assumption here is that the DX connection has been ordered by a network partner like AL2S. A name (like AL2S-DX-FABRIC-Test1) is provided. VLAN has be selected upon ordering of the DX connection that can be found and handled by the SENSE orchestrator. So only Layer-3 information is needed here.

{
  "data": {
    "parent": "urn:ogf:network:aws.amazon.com:aws-cloud",
    "gateways": [
      {
        "name": "Gateway 1",
        "connects": [
          {
            "to_hosted_conn": "AL2S-DX-FABRIC-Test1",
            "amazon_ip": "192.168.1.1/30",
            "amazon_asn": "65000",
            "customer_asn": "55038",
            "customer_ip": "192.168.1.2/30",
            "authkey": ""
          }
        ],
        "type": "AWS Direct Connect"
      }
    ],
    "cidr": "10.0.0.0/16",
    "subnets": [
      {
        "vpn_route_propagation": true,
        "name": "Subnet 1",
        "cidr": "10.0.0.0/24",
        "vms": [
          {
            "interfaces": [
              {
                "public": false,
                "type": "Ethernet"
              }
            ],
            "name": "VM 1"
          }
        ],
        "internet_routable": false
      }
    ]
  },
  "service": "vcn",
  "options": [
    "aws-form"
  ]
}
xi-yang commented 1 year ago

TODO:

xi-yang commented 1 year ago

TODO:

fabric-sense-stitching2

xi-yang commented 1 year ago

@abessiari In sense-o-api==1.25, I added the following API call that would get the UUID of a profile from its name.
GET /profile/{name}?force=true&fetch=false

This can be tested using the CLI client.

$ sense_util.py -p -n FABRIC-AWS-DX
69a24fb3-f2d9-4dc4-a07b-f32b44add2e3

With this, we can put profile either name or id in the network description field.

abessiari commented 1 year ago

Great. Thanks

xi-yang commented 1 year ago

Use case 1 has ben demonstrated. Use case 2 is finished but pending on final tests (waiting for Internet2 to fix OESS API).

xi-yang commented 1 year ago

Use case 2 verified working. We still need some improvement on the summary output like the VM private IP address. Let's leave that to the final wrap up tests at the shrink-packaging time.