From patchwork Wed Feb 20 22:34:52 2019
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Patchwork-Submitter: Ankur Sharma
X-Patchwork-Id: 1045596
Return-Path:
X-Original-To: incoming@patchwork.ozlabs.org
Delivered-To: patchwork-incoming@bilbo.ozlabs.org
Authentication-Results: ozlabs.org;
spf=pass (mailfrom) smtp.mailfrom=openvswitch.org
(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;
envelope-from=ovs-dev-bounces@openvswitch.org;
receiver=)
Authentication-Results: ozlabs.org;
dmarc=fail (p=none dis=none) header.from=nutanix.com
Authentication-Results: ozlabs.org;
dkim=fail reason="signature verification failed" (2048-bit key;
unprotected) header.d=nutanix.com header.i=@nutanix.com
header.b="bCUYnMlZ"; dkim-atps=neutral
Received: from mail.linuxfoundation.org (mail.linuxfoundation.org
[140.211.169.12])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256
bits)) (No client certificate requested)
by ozlabs.org (Postfix) with ESMTPS id 444XY24SDPz9s5c
for ;
Thu, 21 Feb 2019 09:37:26 +1100 (AEDT)
Received: from mail.linux-foundation.org (localhost [127.0.0.1])
by mail.linuxfoundation.org (Postfix) with ESMTP id 29258300C;
Wed, 20 Feb 2019 22:36:55 +0000 (UTC)
X-Original-To: ovs-dev@openvswitch.org
Delivered-To: ovs-dev@mail.linuxfoundation.org
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 85A152FF3
for ; Wed, 20 Feb 2019 22:34:55 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6
Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com
[148.163.151.68])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id B17FF76F
for ; Wed, 20 Feb 2019 22:34:54 +0000 (UTC)
Received: from pps.filterd (m0127839.ppops.net [127.0.0.1])
by mx0a-002c1b01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id
x1KMKD2A022651
for ; Wed, 20 Feb 2019 14:34:54 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com;
h=from : to : cc :
subject : date : message-id : references : in-reply-to : content-type
:
content-transfer-encoding : mime-version; s=proofpoint20171006;
bh=2diiS/XQ+TcX1ScwlDVSNmlC+e866H320c3GrtKeTu8=;
b=bCUYnMlZXjJ85QeQOgx+pkB44d0XDD4ck8wuCb4MVo9X/AdGiFECgGhRFWP7X0ZMHx8Y
Y+cmvd9mmc1pzFed41eIXSSfsqETZQkjV57q0DnC9XjBzBFk0zW0MKesA6Vw8BUWGrdC
CdnRFX/PqDPhX8vq21KgdUNS7H6fGYTqkNhgguPQwZ3Oa6KPnB8ffVteTHajw7IyG3/4
ROT/Mi2hXmqFAzzoOeptomF/KKupuSep2FikUei+OCXUJmkIDzpqC2Zpy13sAof+AXpT
VbicZcIZjjncV2avy8E90mfMvs9sAOeHXnaS4KQtPvOLWE4BIxmyp6UxyQ8ZP4noMEr7
gA==
Received: from nam04-co1-obe.outbound.protection.outlook.com
(mail-co1nam04lp2050.outbound.protection.outlook.com [104.47.45.50])
by mx0a-002c1b01.pphosted.com with ESMTP id 2qpjfjb0wp-1
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)
for ; Wed, 20 Feb 2019 14:34:54 -0800
Received: from MW2PR02MB3899.namprd02.prod.outlook.com (52.132.178.28) by
MW2PR02MB3689.namprd02.prod.outlook.com (52.132.177.22) with
Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
15.20.1622.18; Wed, 20 Feb 2019 22:34:52 +0000
Received: from MW2PR02MB3899.namprd02.prod.outlook.com
([fe80::4976:1b78:f55b:3cfd]) by
MW2PR02MB3899.namprd02.prod.outlook.com
([fe80::4976:1b78:f55b:3cfd%8]) with mapi id 15.20.1622.018;
Wed, 20 Feb 2019 22:34:52 +0000
From: Ankur Sharma
To: "ovs-dev@openvswitch.org"
Thread-Topic: [RFC PATCH v1 1/6] Vlan Support in ovn, add network type in
northbound schema
Thread-Index: AQHUyWx/4r25BZJZ/k2sQ5gWv93LiQ==
Date: Wed, 20 Feb 2019 22:34:52 +0000
Message-ID: <1550673468-84872-2-git-send-email-ankur.sharma@nutanix.com>
References: <1550673468-84872-1-git-send-email-ankur.sharma@nutanix.com>
In-Reply-To: <1550673468-84872-1-git-send-email-ankur.sharma@nutanix.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: BYAPR02CA0064.namprd02.prod.outlook.com
(2603:10b6:a03:54::41) To MW2PR02MB3899.namprd02.prod.outlook.com
(2603:10b6:907:4::28)
x-ms-exchange-messagesentrepresentingtype: 1
x-mailer: git-send-email 1.8.3.1
x-originating-ip: [192.146.154.1]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 356748ca-a5ad-40ad-ff34-08d69783a150
x-microsoft-antispam: BCL:0; PCL:0;
RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605104)(2017052603328)(7153060)(7193020);
SRVR:MW2PR02MB3689;
x-ms-traffictypediagnostic: MW2PR02MB3689:
x-ms-exchange-purlcount: 2
x-proofpoint-crosstenant: true
x-microsoft-exchange-diagnostics: =?utf-8?q?1=3BMW2PR02MB3689=3B23=3AFv9u?=
=?utf-8?q?x9liBV8+LamAws8CKugDb6qo/5gLmTS6lyop64pvnFqckTPGPmTPY1qB?=
=?utf-8?q?D+PWDnM2Xc6ntY+va/n8a9aA2evMBmJA824XAJQ/KA/3iIywzmlJ2CK9?=
=?utf-8?q?kySciJqztlxwE+jdAgE5Soid8VetW5sKBIgz0Y3V4YUiG39Uh946Nke6?=
=?utf-8?q?3mbqhOCNec7gTJesyskEuIBjXc8YeaPlDC0gWn/KDjQKgH9IYQNyuz97?=
=?utf-8?q?nnUPiObvAWXSD3+YaTw8jJKG68ENmliaVgSB7lThjo6ahu7YUOk+I/iF?=
=?utf-8?q?sxj2aZIH3L1wvQvaAZgpM/vaT54WhBqLVU4bjJP/cWujDPb69MjPWUvt?=
=?utf-8?q?gkjl+H29ehpYfUDFGZRNEu7Utn5S9d0ygyTp4+ZRvMkUM8+oS6YEvjof?=
=?utf-8?q?4S6lJOwcMpEQHiqT2B10MzXFv8KhJ6wTubaWzXodEECdt1CzV+hVX6mN?=
=?utf-8?q?GXzI0ijmlkbRwL4dRxFrdoxBk35tP5YnTjwwI4gVQFUt+BPIWIF8j/nO?=
=?utf-8?q?FAXPR1K5W/25d/Ew8q3YidI+4ZGrKvC0deWzoM7cUQQugfr2j1+V531N?=
=?utf-8?q?2QYZ9Weq4WYh9i7MZTOMn/RykADvKHimsmF+gUv8jutVpd7VFsqWV9+n?=
=?utf-8?q?QpJtn4c4Xe3IVT4ErIhCKdHJCajcL9z5oouDH39eP6oiX0sOJDvwMbpi?=
=?utf-8?q?EuzKR8LucTs2rM28l7+WfN6E5rSso2syzM/14yjNHpmdQN0pIjcF/IYR?=
=?utf-8?q?uRbyAMc17jp0W3lKA12NcI8/tGccPpts3xEpAvtdH6Mxv0H9Jp0PRwsm?=
=?utf-8?q?yiQ9D/9BuvCgYfcRjv3LTmI1E9cX5Sgq+T8l57IsiMv5APy7rn1r2GMk?=
=?utf-8?q?t6tfM5lwSWlGDP9OYeQhjJjOiVvgc5BsL23v61ANymiNH5OwStQ3cGSx?=
=?utf-8?q?X4ODznz7la7qv4JtPbm88WMSM7wvsQy9pWCKb/TX/yH2f+rcpQAidz/C?=
=?utf-8?q?2p8qSs7glXmNQ7c4ieutiUQz055Y5+FUFRhxaVL2pBwhe3VfgAIy8sXv?=
=?utf-8?q?M6027Ktyb9rO/gRp+drK+eBztUXjky92RWZNkkevbMq0z9Wnoxb9XXHP?=
=?utf-8?q?IlHpGRdMQk4tWmbNoQXtfgPjwjCe4dwzQNGp+SAmCQWO8xt+eMb4SX/r?=
=?utf-8?q?cWUQ1vVyHWZuKEsxwlfT2FVoWM6Pi9lGbH4JyfvJ9/Hm3bUpggd0vbf4?=
=?utf-8?q?rh6oAGCpNY1gKDdtAHF4QGP+NW21/ATb/wfRCS7U/g3OnTNG/Rh6Mg52?=
=?utf-8?q?inSPXgT8544b7ie5+mjloHzAwHqM4HLnIiqsnmmsdrCAjG1xXFmU+c+R?=
=?utf-8?q?S9QxIung2XfNM0CpXu2ldImdhz4tctnUiQkOmvAT3bmrM6hZRz4r9REX?=
=?utf-8?q?ZUl36U8XPi+qpDyOojSiA/ZFCWo7Ia3wVTyQMa3MRmno7TTghFliXcq4?=
=?utf-8?q?ZS7cTc8W0dSRk4DQX7Imcn2Kt+FoXt3P5DzOAHcHXplBlN4=3D?=
x-microsoft-antispam-prvs:
x-forefront-prvs: 0954EE4910
x-forefront-antispam-report: SFV:NSPM;
SFS:(10019020)(39860400002)(366004)(136003)(396003)(346002)(376002)(189003)(199004)(36756003)(256004)(14454004)(71200400001)(478600001)(71190400001)(14444005)(107886003)(2501003)(86362001)(5660300002)(476003)(25786009)(410100003)(2351001)(97736004)(966005)(4326008)(316002)(446003)(44832011)(53936002)(486006)(106356001)(66574012)(2616005)(11346002)(105586002)(6486002)(52116002)(386003)(26005)(81156014)(8936002)(186003)(6506007)(68736007)(305945005)(6512007)(6306002)(7736002)(50226002)(81166006)(8676002)(6436002)(102836004)(6916009)(4720700003)(6346003)(66066001)(3846002)(5640700003)(6116002)(2906002)(99286004)(76176011)(64030200001);
DIR:OUT; SFP:1102; SCL:1; SRVR:MW2PR02MB3689;
H:MW2PR02MB3899.namprd02.prod.outlook.com; FPR:; SPF:None;
LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: nutanix.com does not designate
permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info:
Ur2LAEkkB0zElbyOyPdlZLpzFb7/oxDVk0n0efZDKTTGRu2PmcrjL3oFFzsbF9fJdEf1oLU5bQ0/mNVCZHwBFuzCzEbOU6t6Lbe6p+ySAwZNp0JtGG2T4vpu4ktZcUG3sJDKMV0SL9WJC8PGDA97rJG0C7jKTTUUMmEaHA2W7HMQW73bt9zeE7/AY2+A4xsAhIPe7Il/h0VfVSt+S+5ZYUG41EKW9EiLlVFIYXAq+5+nfSw57ywTWsD9uENUhZe0JTKFdhc9lGrcQCQhI/SP9qGk+ynJosvYhZKjCktlhpaWjN3vPMtRXuB8oxpI4ma6ipUiItilQK9Et3ZXzPy4d0UsLH56ulMyXEutYkkAgz179HaWyXABM2QWnXQnbnkvsjQh/xbicT+TRWAM4KLCOTg2ikPI9nEPJoHIw3yyzfQ=
MIME-Version: 1.0
X-OriginatorOrg: nutanix.com
X-MS-Exchange-CrossTenant-Network-Message-Id:
356748ca-a5ad-40ad-ff34-08d69783a150
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2019 22:34:52.0732
(UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR02MB3689
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, ,
definitions=2019-02-20_17:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU,
RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Subject: [ovs-dev] [RFC PATCH v1 1/6] Vlan Support in ovn,
add network type in northbound schema
X-BeenThere: ovs-dev@openvswitch.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Sender: ovs-dev-bounces@openvswitch.org
Errors-To: ovs-dev-bounces@openvswitch.org
Background:
[1] https://mail.openvswitch.org/pipermail/ovs-dev/2018-October/353066.html
[2] https://docs.google.com/document/d/1uoQH478wM1OZ16HrxzbOUvk5LvFnfNEWbkPT6Zmm9OU/edit?usp=sharing
This Series:
Layer 2, Layer 3 E-W and Layer 3 N-S (NO NAT) changes for vlan
backed distributed logical router.
This Patch:
a. Add 1 more column to the Logical_Switch table in north bound
schema, to indicate if a logical switch is of type "vlan" or "overlay".
We will support NULL value in this table as well, to keep it backward
compatible. NULL value will be treated as "overlay" type by northd.
b. Column name:
i. network_type: Represents whether network is vlan backed or
overlay.
c. Update ovn-nbctl ls-add clis to take network type as optional
input.
ovn-nbctl ls-add [SWITCH] [TYPE]
d. Add a new ovn-nbctl command to set network type of a logical
switch.
ovn-nbctl ls-set-network-type SWITCH vlan|overlay
Signed-off-by: Ankur Sharma
---
ovn/ovn-nb.ovsschema | 8 ++++++--
ovn/ovn-nb.xml | 9 +++++++++
ovn/utilities/ovn-nbctl.c | 45 +++++++++++++++++++++++++++++++++++++-------
tests/ovn-nbctl.at | 48 +++++++++++++++++++++++++++++++++++------------
4 files changed, 89 insertions(+), 21 deletions(-)
diff --git a/ovn/ovn-nb.ovsschema b/ovn/ovn-nb.ovsschema
index 10a5964..270781e 100644
--- a/ovn/ovn-nb.ovsschema
+++ b/ovn/ovn-nb.ovsschema
@@ -1,7 +1,7 @@
{
"name": "OVN_Northbound",
- "version": "5.14.1",
- "cksum": "3758097843 20509",
+ "version": "5.15.0",
+ "cksum": "3140342094 20772",
"tables": {
"NB_Global": {
"columns": {
@@ -29,6 +29,10 @@
"Logical_Switch": {
"columns": {
"name": {"type": "string"},
+ "network_type": {"type": {"key": {"type": "string",
+ "enum": ["set", ["overlay", "vlan"]]},
+ "min": 0,
+ "max": 1}},
"ports": {"type": {"key": {"type": "uuid",
"refTable": "Logical_Switch_Port",
"refType": "strong"},
diff --git a/ovn/ovn-nb.xml b/ovn/ovn-nb.xml
index 1839650..442ccfc 100644
--- a/ovn/ovn-nb.xml
+++ b/ovn/ovn-nb.xml
@@ -158,6 +158,15 @@
+
+
+ Whether logical switch is VLAN backed or Overlay.
+
+
+
+ Default is overlay.
+
+
Load balance a virtual ip address to a set of logical port endpoint
ip addresses.
diff --git a/ovn/utilities/ovn-nbctl.c b/ovn/utilities/ovn-nbctl.c
index 2fa0b33..3241d80 100644
--- a/ovn/utilities/ovn-nbctl.c
+++ b/ovn/utilities/ovn-nbctl.c
@@ -549,7 +549,7 @@ General commands:\n\
show ROUTER print overview of database contents for ROUTER\n\
\n\
Logical switch commands:\n\
- ls-add [SWITCH] create a logical switch named SWITCH\n\
+ ls-add [SWITCH] [TYPE] create a logical switch named SWITCH of TYPE vlan or overlay\n\
ls-del SWITCH delete SWITCH and all its ports\n\
ls-list print the names of all logical switches\n\
\n\
@@ -971,8 +971,9 @@ print_lr(const struct nbrec_logical_router *lr, struct ds *s)
static void
print_ls(const struct nbrec_logical_switch *ls, struct ds *s)
{
- ds_put_format(s, "switch "UUID_FMT" (%s)",
- UUID_ARGS(&ls->header_.uuid), ls->name);
+ ds_put_format(s, "switch "UUID_FMT" (%s) (type: %s)",
+ UUID_ARGS(&ls->header_.uuid), ls->name,
+ strlen(ls->network_type) ? ls->network_type : "overlay");
print_alias(&ls->external_ids, "neutron:network_name", s);
ds_put_char(s, '\n');
@@ -1074,7 +1075,8 @@ nbctl_show(struct ctl_context *ctx)
static void
nbctl_ls_add(struct ctl_context *ctx)
{
- const char *ls_name = ctx->argc == 2 ? ctx->argv[1] : NULL;
+ const char *ls_name = ctx->argc >= 2 ? ctx->argv[1] : NULL;
+ const char *nw_type = ctx->argc == 3 ? ctx->argv[2] : "overlay";
bool may_exist = shash_find(&ctx->options, "--may-exist") != NULL;
bool add_duplicate = shash_find(&ctx->options, "--add-duplicate") != NULL;
@@ -1111,6 +1113,31 @@ nbctl_ls_add(struct ctl_context *ctx)
if (ls_name) {
nbrec_logical_switch_set_name(ls, ls_name);
}
+
+ nbrec_logical_switch_set_network_type(ls, nw_type);
+}
+
+static void
+nbctl_ls_set_network_type(struct ctl_context *ctx)
+{
+ const char *ls_name = ctx->argv[1];
+ const char *ls_type = ctx->argv[2];
+ const struct nbrec_logical_switch *ls = NULL;
+
+ char *error = ls_by_name_or_uuid(ctx, ls_name, true, &ls);
+
+ if (!ls || error) {
+ ctx->error = error;
+ return;
+ }
+
+ if (strcmp(ls_type, "vlan") && strcmp(ls_type, "overlay")) {
+ ctl_error(ctx, "Invalid type: \"%s\", supported types are \"vlan\" "
+ "and \"overlay\"", ls_type);
+ return;
+ }
+
+ nbrec_logical_switch_set_network_type(ls, ls_type);
}
static void
@@ -1140,8 +1167,10 @@ nbctl_ls_list(struct ctl_context *ctx)
smap_init(&switches);
NBREC_LOGICAL_SWITCH_FOR_EACH(ls, ctx->idl) {
- smap_add_format(&switches, ls->name, UUID_FMT " (%s)",
- UUID_ARGS(&ls->header_.uuid), ls->name);
+ smap_add_format(&switches, ls->name, UUID_FMT " (%s) (type: %s)",
+ UUID_ARGS(&ls->header_.uuid), ls->name,
+ strlen(ls->network_type) ? ls->network_type :
+ "overlay");
}
const struct smap_node **nodes = smap_sort(&switches);
for (size_t i = 0; i < smap_count(&switches); i++) {
@@ -5047,10 +5076,12 @@ static const struct ctl_command_syntax nbctl_commands[] = {
{ "show", 0, 1, "[SWITCH]", NULL, nbctl_show, NULL, "", RO },
/* logical switch commands. */
- { "ls-add", 0, 1, "[SWITCH]", NULL, nbctl_ls_add, NULL,
+ { "ls-add", 0, 2, "[SWITCH] [TYPE]", NULL, nbctl_ls_add, NULL,
"--may-exist,--add-duplicate", RW },
{ "ls-del", 1, 1, "SWITCH", NULL, nbctl_ls_del, NULL, "--if-exists", RW },
{ "ls-list", 0, 0, "", NULL, nbctl_ls_list, NULL, "", RO },
+ { "ls-set-network-type", 2, 2, "SWITCH TYPE", NULL,
+ nbctl_ls_set_network_type, NULL, "", RW },
/* acl commands. */
{ "acl-add", 5, 6, "{SWITCH | PORTGROUP} DIRECTION PRIORITY MATCH ACTION",
diff --git a/tests/ovn-nbctl.at b/tests/ovn-nbctl.at
index 7a5903c..2cb420d 100644
--- a/tests/ovn-nbctl.at
+++ b/tests/ovn-nbctl.at
@@ -56,31 +56,39 @@ m4_define([OVN_NBCTL_TEST],
OVN_NBCTL_TEST([ovn_nbctl_basic_switch], [basic switch commands], [
AT_CHECK([ovn-nbctl ls-add ls0])
AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
-<0> (ls0)
+<0> (ls0) (type: overlay)
])
AT_CHECK([ovn-nbctl ls-add ls1])
AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
-<0> (ls0)
-<1> (ls1)
+<0> (ls0) (type: overlay)
+<1> (ls1) (type: overlay)
])
+AT_CHECK([ovn-nbctl ls-add ls2 vlan])
+AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
+<0> (ls0) (type: overlay)
+<1> (ls1) (type: overlay)
+<2> (ls2) (type: vlan)
+])
+
+AT_CHECK([ovn-nbctl ls-del ls2])
AT_CHECK([ovn-nbctl ls-del ls0])
AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
-<0> (ls1)
+<0> (ls1) (type: overlay)
])
AT_CHECK([ovn-nbctl show ls0])
AT_CHECK([ovn-nbctl ls-add ls0])
AT_CHECK([ovn-nbctl show ls0 | uuidfilt], [0],
- [switch <0> (ls0)
+ [switch <0> (ls0) (type: overlay)
])
AT_CHECK([ovn-nbctl ls-add ls0], [1], [],
[ovn-nbctl: ls0: a switch with this name already exists
])
AT_CHECK([ovn-nbctl --may-exist ls-add ls0])
AT_CHECK([ovn-nbctl show ls0 | uuidfilt], [0],
- [switch <0> (ls0)
+ [switch <0> (ls0) (type: overlay)
])
AT_CHECK([ovn-nbctl --add-duplicate ls-add ls0])
AT_CHECK([ovn-nbctl --may-exist --add-duplicate ls-add ls0], [1], [],
@@ -102,7 +110,23 @@ AT_CHECK([ovn-nbctl --add-duplicate ls-add], [1], [],
])
AT_CHECK([ovn-nbctl --may-exist ls-add], [1], [],
[ovn-nbctl: --may-exist requires specifying a name
-])])
+])
+
+AT_CHECK([ovn-nbctl ls-set-network-type ls1 vlan])
+AT_CHECK([ovn-nbctl show ls1 | uuidfilt], [0],
+ [switch <0> (ls1) (type: vlan)
+])
+
+AT_CHECK([ovn-nbctl ls-set-network-type ls1 overlay])
+AT_CHECK([ovn-nbctl show ls1 | uuidfilt], [0],
+ [switch <0> (ls1) (type: overlay)
+])
+
+AT_CHECK([ovn-nbctl ls-set-network-type ls1 temp], [1], [],
+ [ovn-nbctl: Invalid type: "temp", supported types are "vlan" and "overlay"
+])
+
+])
dnl ---------------------------------------------------------------------
@@ -1419,7 +1443,7 @@ dnl ---------------------------------------------------------------------
OVN_NBCTL_TEST([ovn_nbctl_dry_run_mode], [dry run mode], [
dnl Check that dry run has no permanent effect.
AT_CHECK([ovn-nbctl --dry-run ls-add ls0 -- ls-list | uuidfilt], [0], [dnl
-<0> (ls0)
+<0> (ls0) (type: overlay)
])
AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
])
@@ -1427,7 +1451,7 @@ AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
dnl Check that dry-run mode is not sticky.
AT_CHECK([ovn-nbctl ls-add ls0])
AT_CHECK([ovn-nbctl ls-list | uuidfilt], [0], [dnl
-<0> (ls0)
+<0> (ls0) (type: overlay)
])])
dnl ---------------------------------------------------------------------
@@ -1437,13 +1461,13 @@ AT_CHECK([ovn-nbctl ls-add ls0 -- ls-add ls1])
dnl Expect one line for one command.
AT_CHECK([ovn-nbctl --oneline ls-list | uuidfilt], [0], [dnl
-<0> (ls0)\n<1> (ls1)
+<0> (ls0) (type: overlay)\n<1> (ls1) (type: overlay)
])
dnl Expect lines for two commands.
AT_CHECK([ovn-nbctl --oneline ls-list -- ls-list | uuidfilt], [0], [dnl
-<0> (ls0)\n<1> (ls1)
-<0> (ls0)\n<1> (ls1)
+<0> (ls0) (type: overlay)\n<1> (ls1) (type: overlay)
+<0> (ls0) (type: overlay)\n<1> (ls1) (type: overlay)
])])
dnl ---------------------------------------------------------------------