Skip to content
This repository was archived by the owner on Mar 31, 2023. It is now read-only.

Conversation

@er1cthe0ne
Copy link
Contributor

This PR includes:

  1. Alcor DVR compute host design:
  • added router_design.adoc
  • workflow on router programming
  • E2E packet flow for Alcor DVR
  1. Protobuf schema change:
  • added new states (router/neighbor)
  • added request id field for all states (port/subnet/vpc/dhcp/router/neighbor/securitygroup)
  • remove legacy contents

@er1cthe0ne er1cthe0ne added documentation Improvements or additions to documentation contract new or modified service interfaces labels Aug 2, 2020
@er1cthe0ne er1cthe0ne self-assigned this Aug 2, 2020
Copy link
Contributor

@xieus xieus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some early feedback to the proto change.

PORT = 2;
SECURITYGROUP = 3;
DHCP = 4;
NEIGHBOR = 3;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Resource type is a type for customer-defined resources. Could you elaborate why neighbor is a type?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GoalStateOperationStatus includes ResourceType for GoalStateOperationReply. Since we introduced NeighborState in the schema, we need to add NEIGHBOR as ResourceType for our GoalStateOperationReply.

int64 tunnel_id = 8;
string request_id = 3;
string id = 4;
NetworkType network_type = 5;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we move network_type from port directly to network, instead of subnet? Do you plan to support two subnets in the same network with different values of network_type?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

putting it in subnet level will allow us to support:

  1. two subnets in the same network with different network_type
  2. each network with n subnet will support one network_type only

@cj-chung can you help to find out what openstack neutron supports?

Note that we have the notion to look up subnet info, but we don't have the notion to look up vpc info (yet).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neutron by default supports one network, one network type, and one segmentation id.

Ref: https://docs.openstack.org/api-ref/network/v2/?expanded=create-network-detail#create-network

Regarding two subnets with different network_type, DP will be pretty challenging.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, it supports one network with multiple segments, each with different network type and segmentation id.

    "network": {
        "segments": [
            {
                "provider:segmentation_id": 2,
                "provider:physical_network": "public",
                "provider:network_type": "vlan"
            },
            {
                "provider:physical_network": "default",
                "provider:network_type": "flat"
            }
        ],
        "name": "net1",
        "admin_state_up": true,
        "qos_policy_id": "6a8454ade84346f59e8d40665f878b2e"
    }
} 

Copy link
Contributor

@xieus xieus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Signed off and merged to unblock the ACA PR futurewei-cloud/alcor-control-agent#119.

@xieus xieus changed the title Alcor DVR host design and protobuf schema change Alcor DVR Host Design and Protobuf Schema Change Aug 5, 2020
@xieus xieus merged commit d186908 into futurewei-cloud:master Aug 5, 2020
Copy link
Contributor

@haboy52581 haboy52581 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add comments about neighbor and dhcp

// TODO: change to uint32 but that would require change in DPM
uint64 tunnel_id = 10;

message Gateway {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not find Gateway definition in subnet proto

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I have updated DPM's input about subnet Internal Entity part here, let me know if you have any questions:
https://github.com/haboy52581/alcor/blob/master/docs/modules/ROOT/pages/infra_services/data_plane_manager.adoc#api-specification

limitations under the License.
*/

syntax = "proto3";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we put the neighbor to port as one field which is more naturally?

string ipv4_address = 4;
string ipv6_address = 5;
string port_host_name = 6; // for local DNS response
string request_id = 3;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need one called Id?

FINALIZE = 9; // For Mizar only
CREATE_UPDATE_SWITCH = 10; // For Mizar only
CREATE_UPDATE_ROUTER = 11; // For Mizar only
NEIGHBOR_CREATE_UPDATE = 5; // To be removed after using NeighborState
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we put neighbor into port as field, then we do NOT need NEIGHBORXXX type and logic to handle that

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

contract new or modified service interfaces documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants