[Idr] Re: Revision for adding Ketan's comments (RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29

Susan Hares <shares@ndzh.com> Wed, 09 September 2026 18:53 UTC

Return-Path: <shares@ndzh.com>
X-Original-To: idr@mail2.ietf.org
Delivered-To: idr@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 86080137D74B0 for <idr@mail2.ietf.org>; Wed, 9 Sep 2026 11:53:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1788979982; bh=82ouPPY51AaLfr7RJtphlA1s9/a0jTdzb753XcHOBG0=; h=From:To:CC:Subject:Date:References:In-Reply-To; b=nu+FC8B/gsW4My6QXs6oor1cMsXoSXtUjQ5KFaWwnjqGQVww/WE+ORYJQ3zsLR/Tp JMYPh1rH06DV1ju7iSW9oyl5FUhtSugkLFMDiOalKF1A0K5/s+iR+LW7VVCqQfeO/L /UuS+n09cwh+sVy8rBjgXC4cr1SFtUnbSvCkKwmU=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.284
X-Spam-Level:
X-Spam-Status: No, score=-1.284 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, HTML_TAG_BALANCE_BODY=0.1, HTTPS_HTTP_MISMATCH=0.1, MPART_ALT_DIFF_COUNT=1.112, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RYLRlwdsQki1 for <idr@mail2.ietf.org>; Wed, 9 Sep 2026 11:52:59 -0700 (PDT)
Received: from dispatch1-usg2.ppe-hosted.com (dispatch1-usg2.ppe-hosted.com [205.220.189.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id B1968137D74AB for <idr@ietf.org>; Wed, 9 Sep 2026 11:52:59 -0700 (PDT)
Received: from m0467922.ppops.net (ip6-localhost [127.0.0.1]) by engine.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id C7AAF20060; Wed, 9 Sep 2026 18:52:52 +0000 (UTC)
X-Virus-Scanned: Proofpoint Essentials engine
Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11020133.outbound.protection.outlook.com [52.101.61.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mx1-usg2.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id E38C980078; Wed, 9 Sep 2026 18:52:50 +0000 (UTC)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CFlUa+IL0bSbWD1aWqALYR/zObQEkgvsy4UfHQLPCQ5JsYGnv2GqVpHLk7NtllFjN1nEnDArs61BaLD3NSdrh1DHOMR+XXJXA0KaDgUzWwjQN8UXLiNhFJV6YmUzhbz0NUeb9YdnTLDwEF3AFIGD3+uhc0syGapMLnr88oLfiyM3vyJ6eMmjEJH9UCReD8UppaR/GgAKhtZIJjgAJwxWBcn4K+hPZEfACTpAAA+ll60xWVJ6BDLJX0EMHLZnT4DJZ7elQnK9iDSaeNKqyvUEVa2mTXgYkcCnZiJJM+HMGUh/ncBKxRavoM9FqWG+kq0a+9WNe0Cw7fB8/FP9L/g9mg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=82ouPPY51AaLfr7RJtphlA1s9/a0jTdzb753XcHOBG0=; b=mLlUVAuP5lXxa/rP9d97LIb7y4uD0FWxEdHFLgJHPgtxFKSbXVErBzaV++NtlW1HW5Z3sAhqF+6T7LqJqC9dtWBINe5HLUDubSosAZhnniWb85FYMQMqcLMUev9r8shWBOu2hds8wk6P20zkakAjP65ppeUsXFGDxxvHPOpO18ZmuPYI8N4Tl0SZ9o26lFMCIH+mSCdtMp1zDN6NWQ1LAV0EeOhs/gNNcZHBNDvc3k4o0gw4KEDzxxmoxFe1FH7b/zKC9ncns2un2AymZMbX+PrZqtnmMWSL1VyycCy2EPiJSknqumh7DGEVeKm0VkxuyQO5PwWbOkAhDVE90bJ7Yg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ndzh.com; dmarc=pass action=none header.from=ndzh.com; dkim=pass header.d=ndzh.com; arc=none
Received: from DM8PR08MB7413.namprd08.prod.outlook.com (2603:10b6:8:a::9) by CO1PR08MB6705.namprd08.prod.outlook.com (2603:10b6:303:9a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.7; Wed, 9 Sep 2026 18:52:46 +0000
Received: from DM8PR08MB7413.namprd08.prod.outlook.com ([fe80::8a0:8971:98a2:37e5]) by DM8PR08MB7413.namprd08.prod.outlook.com ([fe80::8a0:8971:98a2:37e5%4]) with mapi id 15.21.0406.007; Wed, 9 Sep 2026 18:52:46 +0000
From: Susan Hares <shares@ndzh.com>
To: Linda Dunbar <linda.dunbar@futurewei.com>, Ketan Talaulikar <ketant.ietf@gmail.com>
Thread-Topic: Revision for adding Ketan's comments (RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29
Thread-Index: AQHdOCvyPvRM89FPiUi1qKg9kj99I7a59jYAgAJOXQCACSwXQIABI/SAgAATqnA=
Date: Wed, 09 Sep 2026 18:52:46 +0000
Message-ID: <DM8PR08MB7413BAC69E522F06554687E5B3B02@DM8PR08MB7413.namprd08.prod.outlook.com>
References: <CAH6gdPz5yFHM3iwcXJGhbUO-r2Fo=9SRQCndZdjb9pHQZ95WjQ@mail.gmail.com> <CO6PR13MB535554CBECBF8E50FEBEC62B85AB2@CO6PR13MB5355.namprd13.prod.outlook.com> <PH0PR13MB5364F3ED25B3A531523F2B9085AA2@PH0PR13MB5364.namprd13.prod.outlook.com> <CO6PR13MB5355DF6FD99A32DE30E8688A85A82@CO6PR13MB5355.namprd13.prod.outlook.com> <CAH6gdPwxDbF2m1eqh_QcrEe92009kG_oGRFH7C6Ro89=CSZ4tA@mail.gmail.com> <DM8PR08MB7413D76F0966A7CDEECADDB6B3B02@DM8PR08MB7413.namprd08.prod.outlook.com> <DM6PR13MB33395BC9A8DAFFADEE48994A85B02@DM6PR13MB3339.namprd13.prod.outlook.com>
In-Reply-To: <DM6PR13MB33395BC9A8DAFFADEE48994A85B02@DM6PR13MB3339.namprd13.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ndzh.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM8PR08MB7413:EE_|CO1PR08MB6705:EE_
x-ms-office365-filtering-correlation-id: b2fc5a59-726d-4c33-5093-08df0ea389f6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|23010399003|19092799006|10070799003|376014|366016|1800799024|10067099003|4143699003|6133799003|3023799007|22082099003|56012099006|5023799004|18002099003|8096899003|13003099007|38070700021;
x-microsoft-antispam-message-info: oqxc4ZjPWUBbPvH91ClfGhoVlLHkrrW/Jp7JrleoxUAq2jObI4HI5GprSJIJ2ovM29Pau6cghS4HRrFOH765LXWeGHrr3IfUXOZOYpXZ8d/u9kWERz65sPyB0Lk6J4iMbn6giliVNjpiRO4e69AW6k6kIwe6DbmfHeu35PE/bls3YZgXftdICpPPfC4DBAbBTC1Hp6rjGUItANrHYhv0xwusj9rD5VfAiV4KlhFLleO+LpXcavj/h6pLi/c9FwwTkSnxu4UvGNVJXKihh3n/jWMfYnK4P9Qt3VnR+9Mrv+K1K5Q9gNMjCYzHjwrjW1xJz13fJhbCUl9UX2GyjgAdgZzGlqPL9lusIOh58odqukk0Bw2aIXNLKhBxSlXnR2+kvi+X4XV9m+uSq3oepPG9vBYsY2QpLBg6qd2TuJujpvKt7m46JpHXidXNu+hPdL66duykp3q+iMT3JRPx6eC7isE+qceqs8ahl9btyyxgc3K7fVSgsosdgPsCaCc6rBHW8hSpuXdg7myqs2uHGouIiDj4h2yJKnSYpicitURx9g6V2kSLQYk7ETEGFK38D2XuleyFywW1OqsQKsEqn4Y9SYJzcY2xGTw0Kp8gs+SGbRsEa2vWum9X1pCyC5KCOJMzGo79B3ASzaSnWRkFMrkRLy/vwWcmgeLJy+AVmKwj4ww=
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR08MB7413.namprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(19092799006)(10070799003)(376014)(366016)(1800799024)(10067099003)(4143699003)(6133799003)(3023799007)(22082099003)(56012099006)(5023799004)(18002099003)(8096899003)(13003099007)(38070700021);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: Z0x8TpkPIFgmu0VYXo6BED12G2ytCgzdjVFzWAGx3Czt1+78IZ2b4/MdmPfwcR3x3cB7dHv7dQbeg0BAgWrrzZykX2gtJJS8+3sOfg5mRaKAhsPrPAtYHNTVtgJWLEFEdJhmsnTzftIgPCjLa4XKDj83it/ph1jAHqiGhZUSbanxe1zv+DZo9ycIq2B3yDOi+LeS6/ZwW1hdsiNu3IMpaZrymt9BnpYVIl1vL2qbV4yBBuXgirIJtbKQyVTvtnL25Xc0JpXhtFEK4Up3yzm9n671ho8xUthHPvpa5F+q62jKUlTv0wa0qSP64M/8p+VBNtR1iOnLq+Q7pzvdZHySisAw2zXdMiViLABYmNZSyI3MKnmkXhdsLGgHfcJ1RCXEWtN2zn0nZLy2ZfappjosKMnPkWJgWJYBAeqbqhmNkCGpHsm2HBJLGKQbUzuuBVuopeD0OXeieTkhGM3+9a69+fAsJdTly5Z2fBbrMt5KN8FJv3c0k5lFGv9CoRlNh6LlMsObrJcwazjaZXGwQdMADJ1f/NaZBNF/cET5IB5V8R+ohqcoX4Z89lDOQ46BeQMWTp8IlDdVLWn6RZCXjCDJpi/FhUxmKg9UdKmZj2/iam+UdxtcaXr3mTHo4EEvUuFiGGHFIlmW7MGtPLNkEybKaag2ol51LM8TIVsUw3y2zSjqhwJc1VsSbcznwghKTN3eldK9r6Kkpq+0Jpqdrhbippg2Psjncq7Fk/5W8Oo2m4WixrWoaacl8RlxRGmr/qBqRgLrufjiHNZeS3DpdExpK3HgaD6oHLfCpIm5rBSzbleDJisJ7CI8jBoxrTHfB97Avk7Pq+8eqVxxAUQ7JYIbXyr+02Pu4Yz7egP4yF+whcx5jg2UZluSfz47rZcZahD53Ci9YjECa7Vftivbt8opDeZ1ikR1xcMqjSJmogkeSBCesUNuaM4tO7S94t4RRq7AaTRid+gyIm8WYsY4UiXOkw20RDyGHxQIsI4b8ZQg956tCnwHzeIG2tErom/9vapOVCY+JVt5lBhMdGruQhhpukQ7t5o1EYvMx0GT4pLa8+U/HQZa8wsijPIfB1k7WMQMDeMOPEuWzXQUZ5jctGka3gthtDC2KiKgq+oZ+YAKuxgV7pHP0Fp7yLPbHjzI40WOQZ0RH4U8S6im8VYaqIBo1UHo0TjgkFriblTzhbxexnSH09nRpbRRUM66tD2G3HIPyOnD89iawafVwvQZWkbKkg8Hb02fgjC+Pi0cAtdPod8JUOq7feGU2Cz4JfwZwvM5TVr/PSfzCo3NkxL1zJKD2vOopheJMvpnIjJe+sSALyXzRSfE2DlBUl3fiEjMOlPkjtOCDu6wh8si7d544it5X59yTesNo/2glFCoqLjYs442ggPvV5aSxme2Ih7eL2LwuKe9zv9QsGttPTQHfpFIm6VSshW5m7szk9mLnY/YxrhpCKQvwKxnHAomtjG0xMijFj2Qv1vP+XmrshnuIruYKhYtaBKUUzJmTK7BLXWr76hyDXU+EfOIyPgB7++e3RQ6Qo91dyHyy+4HY4XXpuxzZfy9g5U3rV6P+cjkUB09VPfLeo1nz3aE6uVAQocz4Y32IAg2RZQrrmbSh4i/8JNjI8W1w7Ip+HHWVsBEBt17O6Ns7K1WQrlHFxUBmZLwbAEpbMtblV3XUpaKFSjNsl2wCmrFuBRTz6vfxuQwsOlCV8hdH8xOkKFnqz8Gm1o/mU4JDzYYva7rv6emvLnFdQBvQWUr93MSN+JhUrymjy6cKmg2L85B8Z+QWTuBhibNvP2T
Content-Type: multipart/alternative; boundary="_000_DM8PR08MB7413BAC69E522F06554687E5B3B02DM8PR08MB7413namp_"
MIME-Version: 1.0
X-Exchange-RoutingPolicyChecked: d3gqYRE6XVaEd38NHUPtC7pm8B8TKIKRucvuwY0CaaE4Gu9gxQOCnvdpaes8+DYhfpF2HxI31tifzPhubVRD8JhygVGBsZb5vw1vjJy8JcGtuVpf2/p1L/NaBpPsNZc/xyxqFjEkzjlL8QeP7pOY7VknDK06/wKh95zA4EGrp55BkUpgTmYHEM2PL3oo8lCcvCCWcPZX3MNFPwl2VbkaU/yhluRVKN5OP2aQrVrDeC5oYVvbj1QXy7pKGh61CK8bA/7bPzjAxtpBE6FtmvsOC8zLiYm/r3NCjS4+BetLuUWx1bmZpVNHgfJrAEzxnSGX8/ejeMcQUWdzlubq+1bgpg==
X-OriginatorOrg: ndzh.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM8PR08MB7413.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b2fc5a59-726d-4c33-5093-08df0ea389f6
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Sep 2026 18:52:46.6396 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: d6c573f1-34ce-4e5a-8411-94cc752db3e5
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: N6tREF0AJLZ6JdDv2yxc8eyDyuya0VRUioHHUUzuBWmkLO+XdWs4LQII5CfwmX3t
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR08MB6705
X-MDID: 1788979971-deVLi5qHpQ9e
X-PPE-STACK: {"stack":"usg2"}
X-MDID-O: usg2;us-east-1f;1788979971;deVLi5qHpQ9e;<shares@ndzh.com>;3c1b6bd04ebe24631a96983f7e836ec5
X-PPE-TRUSTED: V=1;DIR=OUT;
Message-ID-Hash: 2M5IU3U6PGUTXFFG6NX2QMQJG2ZLFWZP
X-Message-ID-Hash: 2M5IU3U6PGUTXFFG6NX2QMQJG2ZLFWZP
X-MailFrom: shares@ndzh.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-idr.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Kausik Majumdar <kmajumdar@upscaleai.com>, Robert Raszuk <robert@raszuk.net>, Venkit Kasiviswanathan <venkit@nexthop.ai>, "idr@ietf. org" <idr@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Idr] Re: Revision for adding Ketan's comments (RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29
List-Id: Inter-Domain Routing <idr.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/DxTSZ2Mx5UTGU1KCw3mHs1jsSho>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Owner: <mailto:idr-owner@ietf.org>
List-Post: <mailto:idr@ietf.org>
List-Subscribe: <mailto:idr-join@ietf.org>
List-Unsubscribe: <mailto:idr-leave@ietf.org>

Linda:

I’ve got a meeting from 3pm until 4:30pm EDT.  Can we zoom at 5pm today?

Sue

From: Linda Dunbar <linda.dunbar@futurewei.com>
Sent: Wednesday, September 9, 2026 1:42 PM
To: Susan Hares <shares@ndzh.com>; Ketan Talaulikar <ketant.ietf@gmail.com>
Cc: Kausik Majumdar <kmajumdar@upscaleai.com>; Robert Raszuk <robert@raszuk.net>; Venkit Kasiviswanathan <venkit@nexthop.ai>; idr@ietf. org <idr@ietf.org>
Subject: RE: Revision for adding Ketan's comments (RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29

Sue,

Thank you so much for taking the time to improve the document. I am ready for a discussion whenever you are.

Linda

From: Susan Hares <shares@ndzh.com>
Sent: Tuesday, September 8, 2026 5:18 PM
To: Ketan Talaulikar <ketant.ietf@gmail.com>; Linda Dunbar <linda.dunbar@futurewei.com>
Cc: Kausik Majumdar <kmajumdar@upscaleai.com>; Robert Raszuk <robert@raszuk.net>; Venkit Kasiviswanathan <venkit@nexthop.ai>; idr@ietf. org <idr@ietf.org>
Subject: RE: Revision for adding Ketan's comments (RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29

Ketan and Linda:

Can we take this back to the author team for a little bit?

I’ve created small pieces of text based on Ketan’s ideas.

Sue

From: Ketan Talaulikar <ketant.ietf@gmail.com<mailto:ketant.ietf@gmail.com>>
Sent: Thursday, September 3, 2026 12:13 AM
To: Linda Dunbar <linda.dunbar@futurewei.com<mailto:linda.dunbar@futurewei.com>>
Cc: Susan Hares <shares@ndzh.com<mailto:shares@ndzh.com>>; Kausik Majumdar <kmajumdar@upscaleai.com<mailto:kmajumdar@upscaleai.com>>; Robert Raszuk <robert@raszuk.net<mailto:robert@raszuk.net>>; Venkit Kasiviswanathan <venkit@nexthop.ai<mailto:venkit@nexthop.ai>>; idr@ietf. org <idr@ietf.org<mailto:idr@ietf.org>>
Subject: Re: Revision for adding Ketan's comments (RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29

Hi Linda,

At a quick glance, I note that not all of my suggestions have been considered even if several issues have been addressed. At this point, the document is not with me; it is back with the WG. Therefore, the author team and the WG should evaluate the document.

Thanks,
Ketan


On Tue, Sep 1, 2026 at 10:29 PM Linda Dunbar <linda.dunbar@futurewei.com<mailto:linda.dunbar@futurewei.com>> wrote:
Hi Ketan,
I have now uploaded a revised version of draft-ietf-idr-sdwan-edge-discovery that I believe addresses all of your comments and suggestions: https://datatracker.ietf.org/doc/draft-ietf-idr-sdwan-edge-discovery/<https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dietf-2Didr-2Dsdwan-2Dedge-2Ddiscovery_&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=3QxUPy-fV0G16Z4tIRByiA&m=IvfbfcCb_6ltI4MWVKBhR9W1Cw0nCLbty1w11RNlSiCzlba_aVKq4WAjRgLjSkON&s=s0GJUiIbf0pNzs6tUIk9ExQb2rgoDKc_RrtchC8ttXM&e=>
I would appreciate it if you could take a look at the updated version.
The major changes include:

  *   Clarified the boundary between BGP signaling and IPsec processing. BGP carries IPsec-related parameters but does not negotiate, derive, validate compatibility, or establish IPsec SAs.
  *   Clarified the centrally controlled SD-WAN model and the role of the RR/Controller, including authorization and policy enforcement.
  *   Updated the BGP transport security requirements so that authentication, integrity protection, and confidentiality are required for carrying the SD-WAN information defined in the document.
  *   Clarified SD-WAN Node ID, SD-WAN Color, BGP Next Hop, and their respective roles in identifying nodes, grouping eligible tunnels, and correlating Client Routes with SD-WAN Underlay Routes.
  *   Clarified that the SAFI-74 SD-WAN Underlay Route carries control-plane tunnel information and is not installed as a forwarding route for user traffic.
  *   Reworked the IPsec SA Rekey Counter, Public Key, SA Proposal, and Simplified IPsec SA Sub-TLV descriptions, including length constraints, validation, and the boundary between BGP and the IPsec implementation.
  *   Clarified that only one IPsec SA Proposal Sub-TLV is processed for a given SD-WAN Hybrid Tunnel TLV, while multiple IPsec SA ID Sub-TLVs may be used for distinct SAs.
  *   Corrected and clarified the Extended Port Attribute encoding, including IPv4/IPv6 address lengths, NAT-related Local/Public IP and port fields, and Sub-TLV length calculation.
  *   Clarified the handling of multiple WAN ports and Extended Port Attribute Sub-TLVs.
  *   Improved validation and error-handling procedures for SD-WAN NLRIs and Tunnel Encapsulation Sub-TLVs, including alignment with RFC 7606 and RFC 9012.
  *   Reworked the IANA Considerations, including the existing Sub-TLV assignments, the SAFI-74 Route Type range, the Extended Port registries, and the overlapping/unassigned ranges.
  *   Updated the Security and Manageability Considerations and cleaned up the normative/informative references.
I also fixed the IDnits issues found during the revision.
Please let me know if you see anything from your review that is still not adequately addressed.
Thanks,
Linda


From: Linda Dunbar
Sent: Saturday, August 29, 2026 8:02 PM
To: Ketan Talaulikar <ketant.ietf@gmail.com<mailto:ketant.ietf@gmail.com>>; Susan Hares <shares@ndzh.com<mailto:shares@ndzh.com>>; Kausik Majumdar <kmajumdar@upscaleai.com<mailto:kmajumdar@upscaleai.com>>; Robert Raszuk <robert@raszuk.net<mailto:robert@raszuk.net>>; Venkit Kasiviswanathan <venkit@nexthop.ai<mailto:venkit@nexthop.ai>>
Cc: idr@ietf. org <idr@ietf.org<mailto:idr@ietf.org>>
Subject: RE: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29

Ketan,

Thank you very much for the extremely detailed and thoughtful review. I am truly impressed by how thoroughly you went through the document and identified so many subtle technical, encoding, consistency, and interoperability issues.

It took me many days to carefully work through all of your comments, understand the concerns, and make the corresponding changes. I really appreciate not only the issues you identified, but also the detailed explanations and concrete suggestions you provided for how they could be addressed. They were extremely helpful in working through some of the more complicated parts of the document.

I have now gone through all of your comments and revised the document accordingly. I will prepare a summary of the major changes and post the revised version to the IDR WG for further review.

I am very grateful for the significant time and effort you put into this review. Your comments and suggestions have substantially improved the document.

Please see the resolutions below marked as [Linda] for your comments.

Linda

From: Ketan Talaulikar <ketant.ietf@gmail.com<mailto:ketant.ietf@gmail.com>>
Sent: Wednesday, August 19, 2026 11:25 AM
To: Linda Dunbar <linda.dunbar@futurewei.com<mailto:linda.dunbar@futurewei.com>>; Susan Hares <shares@ndzh.com<mailto:shares@ndzh.com>>; kmajumdar@upscaleai.com<mailto:kmajumdar@upscaleai.com>; Robert Raszuk <robert@raszuk.net<mailto:robert@raszuk.net>>; venkit@nexthop.ai<mailto:venkit@nexthop.ai>
Cc: idr@ietf. org <idr@ietf.org<mailto:idr@ietf.org>>
Subject: AD evaluation review of draft-ietf-idr-sdwan-edge-discovery-29

Hello Linda, Sue, Kausik, Robert, Venkit, and IDR WG,

I've done the review as part of AD evaluation of
draft-ietf-idr-sdwan-edge-discovery-29 and would like to share the same with
you.

This has been thus far the most difficult and complex review that I've had
to do as an AD (and even generally). The challenging part was not just the
issues themselves but my attempt to find a way to progress this work. I hope
this helps the authors and the WG.


Summary: Not ready to progress to IESG evaluation. Given the nature of
findings, I shall be returning this document back to the WG.

Before getting into the substance of the review, I must clarify that the intent
is to make the document correct and correctly bounded, not to block the
approach it takes. Whether BGP is the right vehicle for SD-WAN secure tunnel
establishment is a question for the WG to settle, not one an AD evaluation
should relitigate, and none of the comments below asks the authors to defend
that choice or to argue it against alternatives. What they do ask is that
the specification be implementable, that it say which rules it follows and
which it defines, and that it be candid about what it has not examined - so
that a reader can make an informed decision that the document currently does
not equip them to make.
[Linda] For the detailed review and for clarifying the intent. We appreciate the comments and will address them individually below.

Then, a declaration of prior involvement. I performed the RTGDIR early
review of -18 (in 2024, "Not ready"). Some of those findings still remain
and are covered in this review. The RTGDIR reviewer role was taken up by
Alvaro after I stepped into the AD role. I will let Alvaro add/clarify on
his review, but I believe some of his findings are also covered here.

technical tldr:

1) Several of the new sub-TLVs cannot carry the values they are defined to
   carry, because the one-octet length that RFC 9012 assigns to sub-TLV type
   codes 64-70. E.g., it cannot hold a 2048-bit Diffie-Hellman public value —
   the only group RFC 8247 makes mandatory to implement.

[Linda] To stay within the RFC 9012 sub-TLV length limit, we can recommend using elliptic-curve DH groups, whose public values are much smaller, e.g. , 64 octets for P-256 (Group 19), 96 octets for P-384 (Group 20), and 132 octets for P-521 (Group 21). For deployments using larger public values, such as 2048-bit MODP, the SD-WAN controller or management system can distribute the public keys for the nodes in the SD-WAN domain instead of carrying them in BGP. Here are the actual wording changes:

Old:
Key Exchange data: This refers to a copy of the sender's Diffie-Hellman public value. The length of the Diffie-Hellman public value is defined for MODP groups in [RFC7296] and for ECP groups in [RFC5903].

New:
Key Exchange data: This field contains a copy of the sender's Diffie-Hellman public value. Because the RFC 9012 sub-TLV Length field is one octet, the total value carried in this IPsec Public Key Sub-TLV is limited to 255 octets. Therefore, the encoded public value, together with the other fields in this Sub-TLV, MUST fit within this limit. Elliptic-curve Diffie-Hellman groups are RECOMMENDED because their public values are smaller; for example, Groups 19, 20, and 21 use public values of 64, 96, and 132 octets, respectively, as defined in [RFC5903]. If the selected Diffie-Hellman public value cannot fit within this Sub-TLV, the public key MUST be distributed by another mechanism, such as the SD-WAN controller or management system.


2) The document covers two different route types with one set of procedures
   and never says which of them RFC 9012 governs, so the client routes
   deviate from it where they may not, and the new SD-WAN SAFI is left
   without a next-hop encoding, propagation rules or validation procedures
   of its own.

[Linda] We believe the document already separates the two cases: Section 2.2 defines SD-WAN underlay UPDATEs using SAFI 74, while Section 2.4 defines client-route UPDATE procedures. Both use the Tunnel Encapsulation Attribute defined in RFC 9012. However, we agree that the applicability boundary should be stated more explicitly. RFC 9012 directly specifies use of the Tunnel Encapsulation Attribute for the client-route AFI/SAFIs, while this document extends its use to SAFI 74 and therefore needs to state the SAFI-74-specific next-hop, propagation, and validation procedures explicitly. We can make the following changes:

Old:
A new NLRI SAFI (SD-WAN SAFI=74) is introduced within the MP_REACH_NLRI Path Attribute of [RFC4760] for advertising the detailed properties of the SD-WAN tunnels terminated at the edge node.

New:
A new NLRI SAFI (SD-WAN SAFI=74) is introduced within the MP_REACH_NLRI Path Attribute of [RFC4760] for advertising the detailed properties of SD-WAN tunnels terminated at the WAN ports of the edge nodes. The SD-WAN SAFI uses the Tunnel Encapsulation Attribute and Tunnel TLV/sub-TLV encodings defined in [RFC9012]. Because SAFI 74 is outside the AFI/SAFIs for which [RFC9012] defines applicability procedures, this document defines the use of the Tunnel Encapsulation Attribute with SAFI 74, including the associated next-hop, propagation, and validation procedures.

3) There is no boundary between what BGP does and what IPsec and other
   SD-WAN functional blocks do, so the document has absorbed IPsec and other
   semantics that it then specifies incorrectly or incompletely.

[Linda] BGP is used only to distribute the parameters needed by SD-WAN peers to establish or select secure tunnels. The actual IPsec SA creation, algorithm compatibility checks, key derivation, packet protection, rekeying behavior, and data-plane processing remain functions of the IPsec implementation. Section 3.2 already states that the compatibility check is performed at the IPsec layer, not by BGP.

We can make the following wording changes to make the boundary clearer:
At the beginning of Section 2.3:
Old:
The IPsec SA Property Sub-TLVs defined in this section are used to signal IPsec SA parameters for SD-WAN Hybrid Tunnels as defined in this document.

New:
The IPsec SA Property Sub-TLVs defined in this section are used by BGP only to advertise IPsec-related parameters associated with SD-WAN Hybrid Tunnels. BGP does not establish, negotiate, derive, or maintain IPsec SAs. The creation and operation of an IPsec SA, including algorithm validation, key derivation, SA state management, rekeying, and packet protection, are performed by the IPsec implementation according to [RFC4301] and, when IKEv2 is used, [RFC7296], together with local policy.

Section 3.2:
Old:
When a new IPsec SA is to be established using parameters carried in Sub-TLVs ... the receiving SD-WAN node MUST validate that the proposed IPsec transforms and algorithms are compatible with its local configuration.

New:
When parameters carried in these Sub-TLVs are used to establish a new IPsec SA, the receiving SD-WAN node passes the advertised parameters to its IPsec function. The IPsec implementation determines whether the advertised transforms and algorithms are compatible with local configuration and performs SA establishment according to [RFC4301] and, when IKEv2 is used, [RFC7296]. These attributes, received via the Tunnel Encapsulation Attribute, provide the parameters associated with establishing the IPsec tunnel between local and remote WAN ports. BGP itself does not perform IPsec negotiation, compatibility checking, or SA establishment.


4) Section 2 interleaves the two route types so that neither can be read on
   its own, and the document uses several different names for them making
   it hard to follow.

[Linda] The document distinguishes the two route types as: (1) Client Routes, using IPv4/IPv6 unicast or L3VPN AFI/SAFIs, and (2) SD-WAN Underlay Routes, using the new SD-WAN SAFI 74. We will use these two terms consistently throughout the document. And make the following wording changes:

Section 2
Old:
The BGP mechanisms defined in this document serve two functions:

New:
The BGP mechanisms defined in this document support two types of advertisements:

  *   Advertise Client Routes with SD-WAN Hybrid Tunnel:
  *   Advertise SD-WAN Underlay Routes: A BGP speaker advertises SD-WAN Underlay Routes using AFI/SAFI 1/74 or 2/74. The NEXT_HOP is set to a local address of the advertising SD-WAN edge node, and the UPDATE includes a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV. The SD-WAN NLRI identifies the WAN port or ports, SD-WAN Color, and SD-WAN Node ID to which the advertised tunnel properties apply. The associated SD-WAN Hybrid Tunnel TLV carries the corresponding tunnel-related information, including IPsec SA properties and, optionally, NAT-related information.

In this document, "Client Route" refers to the first type of advertisement, and "SD-WAN Underlay Route" refers to the second. The term "SD-WAN NLRI" refers specifically to the NLRI encoding used for an SD-WAN Underlay Route.

Section 2.5 Title:
Old: Procedure for Underlay Routes with SD-WAN Hybrid Tunnel TLV

New: Procedure for SD-WAN Underlay Routes with SD-WAN Hybrid Tunnel TLV

Old:
The Edge BGP Peer using BGP SD-WAN discovery sends the SD-WAN NLRI...
New:
The Edge BGP Peer using BGP SD-WAN discovery advertises an SD-WAN Underlay Route whose NLRI is encoded as specified in Section 2.2.1...

Old:
SD-WAN Underlay UPDATE
New:
SD-WAN Underlay Route Advertisement

Old:
Procedure for Client Routes with SD-WAN Hybrid Tunnel
New:
Procedure for Client Route Advertisements with SD-WAN Hybrid Tunnel

Section 2.6.1
Old:
For SD-WAN client routes with a Tunnel Encapsulation Attribute with a SD-WAN Hybrid Tunnel type TLV, the IPsec Sub-TLVs (IPsec SA ID, IPsec nonce, IPsec Public Key, IPsec Proposal, and Simplified IPsec SA) are meaningful, but MAY be rarely sent. Incorrect fields within any of these 5 TLVs. Per [RFC9012], a malformed sub-TLV is treated as an unrecognized sub-TLV.

New:

For Client Routes carrying a Tunnel Encapsulation Attribute with an SD-WAN Hybrid Tunnel TLV, the IPsec Sub-TLVs (IPsec SA ID, IPsec SA Rekey Counter, IPsec Public Key, IPsec SA Proposal, and Simplified IPsec SA) MAY be included. Malformed Sub-TLVs are handled according to [RFC9012].



5) The AH and ESP algorithm fields cite documents that define no code
   points, and the two keys in the Simplified IPsec SA sub-TLV have no
   stated algorithm, format or role, so neither field can be implemented
   interoperably.
[Linda] The Simplified IPsec SA Sub-TLV is intended specifically for centrally controlled SD-WAN deployments where the SD-WAN Controller or management system pre-configures all participating nodes with the applicable IPsec algorithms, keying methods, and security parameters. Therefore, the Sub-TLV intentionally does not carry the full set of parameters needed for general IPsec negotiation. We can make the following wording changes to make the intention more clear.

Section 2.3.5:
Old:
The Simplified IPsec SA Sub-TLV provides a compact way to signal pre-configured IPsec SA parameters for deployments where full transform negotiation (e.g., via IKEv2) is not supported or not necessary. In such deployments, SD-WAN edge nodes are provisioned (e.g., via SD-WAN controller or management system) with a common set of agreed security profiles, including allowed transforms and algorithms. This Sub-TLV signals which profile entry is to be used for a given SA instance.

New:
The Simplified IPsec SA Sub-TLV provides a compact way to signal IPsec SA parameters in a centrally controlled SD-WAN environment where the SD-WAN Controller or management system pre-configures the participating SD-WAN nodes with the required IPsec algorithms, keying methods, and other security parameters. Because these parameters are configured consistently across the SD-WAN domain, this Sub-TLV does not carry all of the information required for full IPsec negotiation. It carries only the parameters needed to identify and operate the applicable SA instance.

6) Error handling is contradictory — the same condition is given different
   outcomes in different sections — and the RFC 7606 disposition that
   applies to each failure mode is never stated.

[Linda] We will consolidate the error handling in Section 2.6 and make the individual sections refer to it. The revised text will explicitly distinguish malformed Tunnel Encapsulation Sub-TLVs, unsupported SD-WAN NLRI Route Types, malformed SD-WAN NLRIs, missing required Tunnel Encapsulation Attributes, and malformed MP_REACH_NLRI next-hop encoding, and will state the applicable RFC 9012/RFC 7606 disposition for each case. Here are the detailed changes:

Section 2.6.1:

Old:
The error handling for the tunnel encapsulation signaling (Encapsulation Extended Community and Tunnel Encapsulation Attribute) in this document follows the procedures specified in Section 13 of [RFC9012]. Unless otherwise stated, malformed or unrecognized Sub-TLVs MUST be handled as specified in [RFC9012]. This document defines new Sub-TLVs for Tunnel Type 25 (SD-WAN-Hybrid), but does not alter the validation behavior established in RFC 9012.

New:
The error handling for the tunnel encapsulation signaling (Encapsulation Extended Community and Tunnel Encapsulation Attribute) in this document follows the procedures specified in Section 13 of [RFC9012]. Unless otherwise stated, malformed or unrecognized Sub-TLVs MUST be handled as specified in [RFC9012]. This document defines new Sub-TLVs for Tunnel Type 25 (SD-WAN-Hybrid), but does not alter the validation behavior established in RFC 9012.

A malformed Sub-TLV within an SD-WAN Hybrid Tunnel TLV MUST be handled according to Section 13 of [RFC9012]. Unless explicitly specified otherwise in this document, the malformed Sub-TLV is treated as an unrecognized Sub-TLV and ignored; it does not cause the entire SD-WAN Hybrid Tunnel TLV or the associated route to be withdrawn.

Section 2.6.2:
Old:
The SD-WAN NLRI [AFI 1/SAFI = 74] utilizes a route type field to describe the format of the NLRI. This specification only allows an NLRI with a type value of 1. An NLRI with a type of field of another value is ignored, but distributed to other peers. The implementation MAY log an error upon the reception of a type value outside of Route Type 1. Error handling for the SD-WAN NLRI also adheres to the BGP UPDATE error handling specified in [RFC7606].

New:
The SD-WAN NLRI [AFI/SAFI = 1/74 or 2/74] utilizes a Route Type field to describe the format of the NLRI. This specification defines Route Type 1. An NLRI with an unsupported Route Type MUST be discarded and MUST NOT be propagated to other peers. The implementation MAY log an error upon reception of an unsupported Route Type.

If a recognized SD-WAN NLRI Route Type is malformed but its NLRI boundary can still be determined, the affected NLRI MUST be handled as Treat-as-withdraw according to [RFC7606].

Error handling for other malformed SD-WAN NLRIs follows the BGP UPDATE error-handling procedures specified in [RFC7606].

If the MP_REACH_NLRI Next Hop field for an SD-WAN Underlay Route has an invalid encoding or length such that the NLRI field cannot be reliably located, the error MUST be handled according to the applicable session-reset or AFI/SAFI-disable procedures specified in [RFC7606].

Section 2.6.3 :
Old:
The SD-WAN NLRI SHOULD NOT be paired with an Encapsulation Extended Community. If an SD-WAN NLRI is paired with an Encapsulation Extended Community rather than a Tunnel Encapsulation Attribute, the SD-WAN NLRI is considered malformed and the Treat-as-withdraw approach specified in [RFC7606] SHOULD be used.

New:
The SD-WAN NLRI MUST NOT be paired with an Encapsulation Extended Community. If an SD-WAN NLRI is paired with an Encapsulation Extended Community rather than a Tunnel Encapsulation Attribute, the SD-WAN NLRI is considered malformed and the Treat-as-withdraw approach specified in [RFC7606] MUST be used.

Fix Section 2.5.2 step 3 to align with Section 2.6.1.
Old:
If any Extended Port Attribute Sub-TLV is determined to be invalid, the entire SD-WAN Hybrid Tunnel TLV MUST be considered invalid.

New:
If an Extended Port Attribute Sub-TLV is malformed, it MUST be handled according to Section 13 of [RFC9012] and Section 2.6.1 of this document.

Section 2.2.2:
Old:
Any other value is not supported and the NLRI MUST be ignored, but distributed to other BGP peers.

New:
An SD-WAN NLRI with an unrecognized Route Type MUST be discarded and MUST NOT be propagated, as specified for typed NLRIs in Section 5.4 of [RFC7606].

Length Field Validation:
Old:
Any other value renders the NLRI malformed, and the NLRI MUST be discarded.

New:
Any other value renders the SD-WAN NLRI malformed. Error handling is specified in Section 2.6.2.



7) Applying the mechanism to L3VPN routes is unimplementable as written
   because label handling over the tunnel is never specified, and using the
   Route Target as a VPN identifier on plain unicast cannot separate
   overlapping address space.

[Linda] We can make the following changes to clarify both points. For VPN-IPv4/VPN-IPv6 Client Routes, the VPN route label carried in the SAFI 128 NLRI is retained and used for forwarding at the egress SD-WAN edge. When the SD-WAN Hybrid Tunnel traverses an IPsec/GRE or IPsec/VXLAN segment, the labeled packet is carried through the secure tunnel and the egress node processes the VPN route label according to the applicable L3VPN/MPLS procedures. For plain IPv4/IPv6 unicast Client Routes, the Route Target is not part of the NLRI and therefore cannot by itself distinguish overlapping prefixes. We will clarify that plain unicast advertisements are only applicable where overlapping address space is not required, or where separate routing contexts are established by configuration. Overlapping VPN address spaces use the VPN-IPv4/VPN-IPv6 SAFI with an RD.

Section 2.4.4 (SD-WAN VPN ID in Control Plane)change:

Old:
For IPv4/IPv6 Unicast (AFI/SAFI = 1/1 or 2/1), the Route Target Extended Community [RFC4360] SHOULD be included. The Route Target value is interpreted as the VPN ID. The Route Target is especially necessary when the SD-WAN edge node serves multiple VPNs on its client-facing interfaces. If all client routes belong to a single VPN and the association is unambiguous, the Route Target MAY be omitted.

For VPN-IPv4/VPN-IPv6 (AFI/SAFI = 1/128 or 2/128), the RD in the NLRI serves as the VPN ID.

New:
For IPv4/IPv6 Unicast (AFI/SAFI = 1/1 or 2/1), client routes received from different client-facing ports may be configured to belong to different VPNs when traversing the SD-WAN network. The Route Target Extended Community [RFC4360] SHOULD be included in the BGP advertisement to identify the VPN associated with each client route. Remote SD-WAN edge nodes use the Route Target to associate the received client route with the corresponding VPN forwarding context. If all client routes belong to a single VPN, the Route Target MAY be omitted.

For VPN-IPv4/VPN-IPv6 routes (AFI/SAFI = 1/128 or 2/128), the Route Distinguisher is part of the BGP NLRI and distinguishes otherwise identical prefixes belonging to different VPNs. The Route Target controls VPN membership and route import/export policy. Overlapping prefixes belonging to different VPNs therefore use VPN-IPv4/VPN-IPv6 routes with distinct Route Distinguishers.

Section 2.4.5 (SD-WAN VPN ID in Data Plane)  change:
Old:
In the data plane, SD-WAN traffic can traverse either an MPLS or
IPsec segment within a SD-WAN Hybrid Tunnel. The method for conveying
the VPN ID depends on the encapsulation:

·         MPLS Segments: When the SD-WAN Hybrid Tunnel uses MPLS transport, the MPLS label stack is used to identify the VPN per [RFC8277]. Security is assumed to be provided by the MPLS transport.

·         IPsec Segments: When traversing a public network with IPsec encryption: For GRE encapsulation within IPsec, the GRE Key field can carry the SD-WAN VPN ID; For VXLAN network virtualization overlays within IPsec, the VNI (Virtual Network Identifier) field is used to carry the VPN ID
New:
In the data plane, client traffic belonging to different VPNs MUST remain distinguishable while traversing the SD-WAN network. The method used to carry the VPN identifier depends on the encapsulation:


·         For MPLS segments, an MPLS label is used to distinguish traffic belonging to different VPNs according to the applicable MPLS VPN procedures.


·         For IPsec segments, the VPN identifier is carried within the encapsulation protected by IPsec. For GRE encapsulation, the GRE Key field is used to identify the VPN. For VXLAN encapsulation, the VNI (Virtual Network Identifier) is used to identify the VPN.

8) Every new value space is closed by normative text that makes any
   unrecognised value a malformed sub-TLV, while IANA registries are
   simultaneously requested for three of them, so nothing allocated in
   future could ever be used.

[Linda] Agree. These value spaces are intended to be extensible through the corresponding IANA registries. We can make the following changes of the validation text so that an unrecognized value does not by itself make the Sub-TLV malformed; malformed processing will be limited to invalid encoding or length.

Section 2.3.6:
Old:
Those are the only two valid values for this field.

New:
This document defines Encap-Type values 1 (GRE) and 2 (VXLAN). Additional values may be assigned in the future through the IANA registry. An unrecognized Encap-Type value does not by itself make the Sub-TLV malformed; however, an implementation MUST NOT use an encapsulation type that it does not support.

Section 2.3.6.1  (Extended Port Sub-Sub-TLV, Connection Type)
Old:
Values outside the range 1-4 are invalid and render the Sub-TLV malformed.

New:
This document defines Connection Type values 1 through 4. Additional values may be defined by future specifications and assigned through the IANA registry. Until then, values other than those defined by this document are unsupported. An implementation receiving an unsupported Connection Type value MUST NOT use that value for tunnel selection or establishment.


Old:
Underlay Network Type Sub-Sub-TLV is a MALFORMED Sub-Sub-TLV if the fields do not fit the limits specified above.

New:
The Underlay Network Type Sub-Sub-TLV is MALFORMED if its encoding or length is invalid. This document defines the valid Connection Type and Port Type values listed above. Additional values may be defined by future specifications and assigned through the corresponding IANA registries. Until such values are defined, other values are invalid.

9) The Security Considerations analyse neither the BGP layer nor the IPsec
   layer, and nowhere state that the Route Reflector, being the SD-WAN
   controller, is the trust anchor on which the whole solution rests.

[Linda] The document already defines the RR as part of the SD-WAN Controller and states its authorization role. Section 1 says that the RR receives BGP UPDATEs from SD-WAN edges and propagates them only to peers authorized to communicate over the SD-WAN overlay. Section 3 further states that the RR maintains authorization policy and MUST verify that an advertising BGP speaker is permitted to originate SD-WAN Hybrid Tunnel information before reflecting it. Section 5 also requires strict filtering and policy controls for SD-WAN identifiers.

If you think it is necessary, we can make the following changes to reiterate those points in Section 5 (Security Consideration):
Old:
This document defines BGP extensions for SD-WAN edge nodes to advertise their attributes for establishing IPsec SAs and underlay tunnel attributes, typically via a RR, which then propagates them to authorized SD-WAN peers. These BGP UPDATEs may contain sensitive information such as public keys, IPsec proposals, and nonces.

New:
This document defines BGP extensions for SD-WAN edge nodes to advertise their attributes for establishing IPsec SAs and underlay tunnel attributes, typically via a RR that is part of the SD-WAN Controller, which then propagates them to authorized SD-WAN peers. As described in Sections 1 and 3, the RR/Controller maintains the authorization policy for the SD-WAN domain and verifies that an advertising SD-WAN edge is authorized to originate the corresponding SD-WAN tunnel information before reflecting it to other peers. These BGP UPDATEs may contain sensitive information such as public keys, IPsec proposals, and nonces. In deployments where SD-WAN edge nodes communicate with the RR over public or untrusted networks, BGP SHOULD be run over TCP-AO secure transport that provides authentication and integrity for this data.

Add the following paragraph after the 3rd one:
As specified in Section 2.3, BGP only distributes IPsec-related parameters; IPsec SA establishment and operation are performed by the IPsec implementation according to [RFC4301] and, when IKEv2 is used, [RFC7296].

10) The IANA sections request assignments that were made years ago, six
    of them under names that differ from the ones the document now uses.

[Linda] For Section 6.2, Tunnel Type 25 has already been assigned as SD-WAN-Hybrid and the name used in the current document is consistent with the registry. No new assignment is needed; we will ask IANA to update the reference for the existing allocation to this document.

Section 6.3:
Old:
IANA is requested to assign the following sub-Types in the BGP Tunnel Encapsulation Attribute Sub-TLVs registry...

New:
IANA has previously assigned the following Sub-TLV Types in the BGP Tunnel Encapsulation Attribute Sub-TLVs registry in the Border Gateway Protocol Tunnel Encapsulation Group. IANA is requested to update the descriptions and references for these existing assignments as follows:

11) The document asserts advantages over alternative mechanisms that it has
    not established, and nowhere tells a reader what it has not analysed.
[Linda] We can make the following wording changes to make it clearer:
Section 2.3.6
Old:
Unlike pairwise NAT traversal mechanisms such as IKEv2 [RFC7296], which require peers to dynamically discover NAT properties during tunnel setup, the BGP-controlled SD-WAN architecture enables each SD-WAN edge node to proactively advertise its NAT properties to all peers through BGP signaling. This approach simplifies NAT traversal in large-scale SD-WAN deployments where each edge node may need to establish tunnels with many peers.

New:
Unlike pairwise NAT traversal mechanisms such as IKEv2 [RFC7296], in which NAT-related information is discovered between peers during tunnel establishment, the BGP-controlled SD-WAN architecture enables an SD-WAN edge node to advertise its NAT properties through the RR to authorized SD-WAN peers before individual tunnels are established. This avoids requiring the same NAT-related information to be discovered independently during the establishment of each SD-WAN tunnel and can reduce repeated parameter exchange in deployments where an SD-WAN edge establishes tunnels with many peers.


The review has three parts: the tldr above; then the document-level issues
and what I am asking for on each; then the detailed comments, inline in the
idnits output of v29 of this document. The document-level issues are not
repeated in the detailed part.

All of this is an effort to convey the review findings appropriately to not
just the authors but also the WG so they can do their part with reviewing
the document as it progresses.

Please look for the tag <EoRv29> at the very end of the review. If you don't
see that, then likely the email has been truncated by your email client and
you should look at the IDR WG email archive for the full version.

Thanks,
Ketan

PS: This is not an editorial review and it does not list the many spelling,
grammatical and typographical errors, and a few incomplete or garbled
sentences. A proofreading pass is needed once the technical issues are sorted
out.


DOCUMENT-LEVEL ISSUES

These are the whole-document matters. They are given in the order I would
suggest that the authors work on them; it is just something that I felt
may be helpful. These aspects are not repeated in the detailed part further
below in the idnits output.

(1) <major> Which of the document's two contexts does RFC 9012 govern?

The document operates in two distinct contexts and treats them as one.

   *  Client routes - AFI/SAFI 1/1, 2/1, 1/128 and 2/128. Every one of these
      is covered by RFC 9012, and it's procedures bind in full. Here the TEA
      does what RFC 9012 designed it to do: it tells the receiver which tunnel
      to forward this route's traffic through.

   *  Underlay routes - the new SD-WAN SAFI, 1/74 and 2/74. Here the TEA is
      not selecting a tunnel for the NLRI's traffic; the NLRI is a
      (Port-Local-ID, SD-WAN-Color, SD-WAN Node ID) tuple naming a WAN port,
      and the TEA is the container for that port's properties. That is
      structurally the same reuse RFC 9830 makes for the SR Policy SAFI.

The document states neither the split nor its consequences. What it states
instead, at Section 2.6.1, is a blanket claim of adherence to RFC 9012 that
is wrong in different ways - see the comment at line 1555 below.

The concrete gaps for the SD-WAN SAFI, each of which RFC 9830 answers
explicitly for its own SAFI (73) and would be a good guideline to work from:

   *  No applicability statement. Nothing says the SD-WAN Hybrid Tunnel Type
      and sub-TLVs 64-70 are applicable only to particular AFI/SAFIs. Table
      1 gestures at it, but a table introduced as a "Summary" (line 352) and
      captioned as a figure (line 390) is not where normative applicability
      belongs - and it is wrong on the Color entry (see the comment at line
      362).

   *  No disposition for the RFC 9012 sub-TLVs on the SD-WAN SAFI. Table 1
      marks fourteen of them "not valid" without saying what that means
      operationally - ignored, malformed, or stripped on propagation?
      Section 2.1.1 step 2 says "ignore invalid Sub-TLVs (per [RFC9012])",
      which for SAFI 74 cites a document that does not cover the case.

   *  No statement of what the TEA means on the SD-WAN SAFI. RFC 9012's
      whole model is route-resolution-over-tunnel. For an underlay route
      there is no traffic to resolve, and the document never says so -
      see the comment at line 1495, where that omission produces a defect.

   *  No statement of the relationship to RFC 9012 generally, and no
      acknowledgement that the SD-WAN SAFI sits outside its scope.

   *  No best-path statement. Nothing says what BGP does when two paths for
      the same SD-WAN NLRI are received, or whether the SD-WAN sub-TLVs
      participate in best-path selection. See Sections 2.4 and 4.2 of RFC
      9830 for the corresponding statements.

   *  No statement of what happens when a TEA carrying only some other
      tunnel type accompanies an SD-WAN NLRI. Section 2.6.3 covers the
      absent case; the wrong-type case is left open. See Section 2.2 of
      RFC 9830 for the corresponding rule.

   *  No propagation rules. Nothing states how SD-WAN SAFI routes are
      propagated: whether a Route Reflector reflects them under the ordinary
      RFC 4456 rules; whether a receiving edge node re-advertises them
      further, and to whom; whether propagation across an eBGP boundary is
      permitted at all, given the single-administrative-domain assumption;
      whether the best path only is propagated or all paths; and - since the
      RR is by definition a component of the SD-WAN controller, and may
      plausibly act on the information rather than merely reflect it -
      whether it re-originates, modifies or filters the attributes it
      propagates, or whether ordinary RR semantics apply unchanged. At
      present a reader cannot tell whether the RR is a BGP transit function
      or a SD-WAN control-plane participant. What propagation rules the document
      does have are scattered into sections that are about something else:
      Section 3's authorisation requirement on the RR before reflecting (see
      the comment at line 1614) and Section 2.2.2's ignore-but-distribute
      (see the comment at line 448). There is no propagation section. See
      Section 4.2.3 of RFC 9830.

Remedy. Add a short subsection - Section 2.1, before the encoding, is the
right place - modelled on Sections 1, 2.2 and 2.3 of RFC 9830, stating: (i)
that client routes use the TEA as specified in RFC 9012 and that this
document does not alter those procedures; (ii) that AFI/SAFI 1/74 and 2/74
are outside the scope of Section 6 of RFC 9012 and that this document
defines the TEA's usage for them; (iii) that the SD-WAN Hybrid Tunnel Type
and sub-TLVs 64-70 are applicable only to the AFI/SAFIs listed, in
normative prose rather than only in Table 1; (iv) a default-deny rule
for the RFC 9012 sub-TLV space on the SD-WAN SAFI, with the required and
permitted ones named and everything else MUST-ignore / MAY-strip; (v) that
the SD-WAN NLRI is not installed for forwarding; (vi) the propagation rules
per the last gap above.

I am referencing RFC 9830 (of which I am a co-author) since it is the closest
existing precedent, it is an IDR product, and leveraging it might help the
authors.

I should also clarify, to avoid missteps, that this document does not update
RFC 9012.

[Linda] The current revision already distinguishes Client Routes from SD-WAN Underlay Routes and states that SAFI 74 is outside the AFI/SAFIs for which RFC 9012 defines applicability procedures. We can make the following wording change to further clarify that Client Routes follow RFC 9012 unchanged, while this document defines the TEA semantics, applicable Sub-TLV processing, best-path behavior, error handling, and propagation rules for SAFI 74. We use RFC 9830 as a guideline for these clarifications where applicable. This document does not update RFC 9012.

Section 2 (BGP SD-WAN Mechanisms)
Old:
In this document, "Client Route" refers to the first type of advertisement, and "SD-WAN Underlay Route" refers to the second. The term "SD-WAN NLRI" refers specifically to the NLRI encoding used for an SD-WAN Underlay Route.

New:
In this document, "Client Route" refers to the first type of advertisement, and "SD-WAN Underlay Route" refers to the second. The term "SD-WAN NLRI" refers specifically to the NLRI encoding used for an SD-WAN Underlay Route. For Client Routes, the Tunnel Encapsulation Attribute procedures of [RFC9012] apply. For SD-WAN Underlay Routes using SAFI 74, which is outside the applicability scope defined by [RFC9012], the use and processing of the Tunnel Encapsulation Attribute are defined by this document. This document does not update [RFC9012].

Section 2.2  (SD-WAN Underlay Route Advertisement)

Old:
An Edge BGP Peer using BGP SD-WAN discovery advertises an SD-WAN Underlay Route whose NLRI is encoded as specified in Section 2.2.1. The route carries a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV to advertise the detailed properties associated with the public-facing WAN port or ports and their associated IPsec tunnels.

New:
An Edge BGP Peer using BGP SD-WAN discovery advertises an SD-WAN Underlay Route whose NLRI is encoded as specified in Section 2.2.1. The route carries a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV to advertise the detailed properties associated with the public-facing WAN port or ports and their associated IPsec tunnels. The SD-WAN Underlay Route carries control-plane information describing an SD-WAN WAN port and its tunnel properties; the SD-WAN NLRI is not itself installed as a route for forwarding user traffic.

Section 2.6.1 ( Error Handling for Tunnel Encapsulation Signaling)

Old:
The error handling for the tunnel encapsulation signaling (Encapsulation Extended Community and Tunnel Encapsulation Attribute) in this document follows the procedures specified in Section 13 of [RFC9012]. Unless otherwise stated, malformed or unrecognized Sub-TLVs MUST be handled as specified in [RFC9012]. This document defines new Sub-TLVs for Tunnel Type 25 (SD-WAN-Hybrid), but does not alter the validation behavior established in RFC 9012.

New:
For Client Routes, error handling for the Tunnel Encapsulation Attribute follows Section 13 of [RFC9012]. For SD-WAN Underlay Routes using SAFI 74, error handling for the Tunnel Encapsulation Attribute and its Sub-TLVs is defined by this document. Sub-TLVs that are not applicable to SAFI 74 MUST be ignored and MAY be removed when the route is propagated.

Section 2.5:   add the following sentence

Normal BGP best-path selection applies when multiple paths for the same SD-WAN NLRI are received; the SD-WAN Hybrid Tunnel TLV and its Sub-TLVs do not participate in best-path selection. The RR reflects authorized SD-WAN Underlay Routes within the SD-WAN administrative domain according to [RFC4456].


(2) <major> There is no boundary between BGP and IPsec, so the document
    specifies IPsec incorrectly

An IDR document should specify BGP: the encodings, the validation BGP can
perform on them, the propagation rules. Everything else is domain-specific
and declared out of scope. RFC 9830 did that by the handoff to RFC 9256.
I am not sure if this document has equivalent to defer to - there is no
specified SD-WAN tunnel manager, no SD-WAN-side equivalent of the SRPM,
and no base specification for one. Having nowhere to put the IPsec semantics,
the document has absorbed them, and it is in that absorbed material that
the defects cluster: algorithm fields with no code point space (line 953),
key fields with no stated algorithm, format or role (line 913), nonce rules
misattributed to RFC 7296 (lines 685 and 981), and a rekey mechanism with
no lifecycle (line 584).

The document is already reaching for the boundary and does not know it.
Section 3.2, at line 1674, says "This compatibility check is performed at
the IPsec layer, not by BGP." That is exactly the right statement. It is
made once, in an operational section, about one check, having already been
contradicted by pages of BGP-side IPsec validation.

I must also point out a charter scope issue here when IDR documents start
to specify aspects beyond BGP for which we have other responsible WGs (which
do not seem to have been consulted during this document's development).

Remedy - draw the boundary in the abstract, without waiting for a companion
specification. The document does not need RFC 9256's equivalent to exist; it
needs to name a local functional component and state the interface to it.
Concretely:

   *  Name the component in Section 1.3 - perhaps "SD-WAN tunnel manager", the
      direct analogue of the SR Policy Module that RFC 9830 hands off to -
      defined as the local process that consumes the received underlay-route
      information and establishes, rekeys and tears down the IPsec SAs. Its
      internals are explicitly out of scope.

   *  State that BGP performs syntactic validation only on the IPsec-bearing
      sub-TLVs: field lengths consistent with the stated Length, values
      present where required, sub-TLV boundaries aligned. Nothing else.

   *  State explicitly that BGP MUST NOT perform semantic verification of
      IPsec parameters - algorithm suitability, transform compatibility, key
      validity, group support - and MUST NOT treat an advertisement as
      malformed on those grounds. Section 5 of RFC 9830 has the sentence to
      adapt.

   *  State that the validated information is passed to the SD-WAN tunnel
      manager, and that an advertisement whose parameters the component
      cannot use is unusable rather than malformed, so it is still
      propagated.

   *  Then make the sub-TLV fields self-describing enough to survive the
      handoff. This is where the boundary gets its support: if BGP is not
      interpreting the AH/ESP algorithm values, the fields must carry values
      from a namespace the receiving component can resolve - which is the
      IANA IKEv2 transform registries, not RFC 8221 (line 953). If BGP is
      not interpreting Key 1 and Key 2, the encoding must still say what
      they are so the component knows what it has been handed (line 913). An
      opaque field is fine; an ambiguous one is not.

That last point is the important qualifier. The boundary reframes the
processing concerns, not the encoding ones: the length and range arithmetic
in the comments further below remains exactly as stated.

One interaction to note. If the Section 3 policy problem (see the comment at
line 1614) is resolved by assigning policy responsibility to a named
management-plane component, then that component and this one are perhaps
the same thing, and if so, the name could perhaps be - "SD-WAN Manager",
covering both tunnel lifecycle and policy.

I don't know if such an abstraction was considered by the authors despite
some comments to that effect from Alvaro's RTGDIR review - that is, was there
ever an effort to keep this document to BGP and push the IPsec processing to
a separately specified component? My reading of the text is that it was not,
and that the IPsec material accumulated into the document rather than having
been placed there by a scoping decision; please correct me if I am wrong.

That brings the question: Is the right long-term answer a short companion
document specifying the SD-WAN tunnel manager interface, with this document
reduced to the BGP encodings and procedures? That is a larger structural
question than this review can settle, and it is the shape RFC 9830 and
RFC 9256 have. Note that the interface can be described in this document
without the companion existing - the five items above are the minimum, and
they are worth doing even if no companion is ever written.
[Linda]  In addressing your earlier comments, we have made changes to explicitly separates the BGP and IPsec responsibilities. Section 2.3 states that BGP only advertises IPsec-related parameters and does not establish, negotiate, derive, or maintain IPsec SAs; those functions, including algorithm validation, key derivation, SA state management, rekeying, and packet protection, are performed by the IPsec implementation. Section 3.2 further states that the received parameters are passed to the IPsec function and that BGP does not perform IPsec negotiation, compatibility checking, or SA establishment.

We agree that the BGP validation boundary can be stated more explicitly: BGP validates the encoding of the advertised Sub-TLVs, while semantic compatibility and usability of the IPsec parameters are determined by the IPsec implementation. We can make the following wording changes to clarify this point. The individual encoding issues identified below are addressed separately.

Section 2.3 : clarify what BGP validates

Old:
The IPsec SA Property Sub-TLVs defined in this section are used by BGP only to advertise IPsec-related parameters associated with SD-WAN Hybrid Tunnels. BGP does not establish, negotiate, derive, or maintain IPsec SAs. The creation and operation of an IPsec SA, including algorithm validation, key derivation, SA state management, rekeying, and packet protection, are performed by the IPsec implementation according to [RFC4301] and, when IKEv2 is used, [RFC7296], together with local policy.

New:
The IPsec SA Property Sub-TLVs defined in this section are used by BGP only to advertise IPsec-related parameters associated with SD-WAN Hybrid Tunnels. BGP does not establish, negotiate, derive, or maintain IPsec SAs. BGP validation of these Sub-TLVs is limited to their encoding and syntactic validity. The creation and operation of an IPsec SA, including algorithm validation, key derivation, SA state management, rekeying, and packet protection, are performed by the IPsec implementation according to [RFC4301] and, when IKEv2 is used, [RFC7296], together with local policy.

Section 3.2 :

Old:
BGP itself does not perform IPsec negotiation, compatibility checking, or SA establishment.

New:
BGP itself does not perform IPsec negotiation, compatibility checking, or SA establishment. If the IPsec implementation cannot use the advertised parameters, this does not by itself make the BGP advertisement malformed.

(3) <major-editorial> Section 2 interleaves the two route types; split it
    into three

Section 2 runs into almost 2/3rds of this almost 50 page document and
alternates between the two route types without a structural boundary:
Section 2.1 is the SD-WAN Hybrid Tunnel TLV, covering both, with Table 1
as the only place the applicability split is recorded; Section 2.2 is the
new SAFI and its NLRI, underlay only; Section 2.3 is the IPsec and port
sub-TLVs, mostly underlay and some valid for both; Section 2.4 is
client-route procedures; Section 2.5 is underlay-route procedures; and
Section 2.6 is error handling for both, restating parts of Sections 2.4
and 2.5.

This makes it really very hard for a reader who wants to implement the new
SAFI - they must read Section 2.1, skip Section 2.4, read Sections 2.2,
2.3 and 2.5, then filter Section 2.6 - and must work out for themselves,
at every step, which half of Sections 2.1 and 2.6 applies. That the two
procedure sections have drifted apart, and that a client-route requirement
has migrated into the underlay procedure, are both symptoms of this layout
rather than independent mistakes. I found this extremely hard to work through
and I believe so did some other directorate reviewers.

Remedy - restructure Section 2 into three top-level sections.

   *  The SD-WAN SAFI: encoding and procedures. Everything that concerns
      underlay routes and nothing else - the applicability statement from
      issue (1), the NLRI format and validation, the Next Hop encoding, the
      SD-WAN Hybrid Tunnel TLV and sub-TLVs as they appear on this SAFI, the
      underlay-route procedures, and this SAFI's error handling.
      Self-contained: an implementer building only the underlay half should
      not need to read further.

   *  Applicability to the overlay SAFIs. How 1/1, 2/1, 1/128 and 2/128
      signal that a route is to be carried over an SD-WAN Hybrid Tunnel -
      the Encapsulation Extended Community option, the Tunnel Encapsulation
      attribute option, and the trade-off between them (currently Sections
      2.1.2 and 2.4). This section states explicitly that RFC 9012's
      procedures apply unchanged here, which is the other half of issue (1)
      and resolves two of the detailed comments below by construction: with
      the client-route rules written in their own section, "treat an absent
      Tunnel Egress Endpoint as AF 0" and "process only the first instance
      of any sub-TLV" become visibly RFC 9012 violations rather than
      plausible general statements.

   *  Interaction between the two. The correlation procedures that are
      currently scattered across Sections 2.1.2, 2.4.1, 2.4.3, 2.5 and 3.1:
      how a receiver binds an overlay route to the underlay routes that can
      carry it (Node ID / next-hop matching, SD-WAN-Color against the Color
      Extended Community), what happens when no underlay route matches, and
      the ordering and timing questions - an overlay route arriving before
      its underlay routes, or its underlay routes being withdrawn while it
      remains. Those last two are not covered anywhere at present, and this
      section is where the gap becomes visible.

Three consequential benefits beyond readability. It gives the colour
correlation mechanism a single home, which is where the three-way muddle (see
line 362) has to be resolved. It makes the terminology sweep in issue (4)
mechanical rather than judgemental. And it directly answers the structural
criticism running through the RTGDIR, OPSDIR and INTDIR early reviews.
Those reviewers asked for restructuring twice and received edits instead;
this is the restructuring. I am merely re-emphasizing what others have stated
but also offering concrete suggestions on how to go about this.

Within the first two of the three sections, please keep RFC 9012's own
ordering discipline - encoding before procedures, so the reader has the
construct before the behaviour.

Sequencing: this split should be done before the trying to resolve most of
the detailed comments related to section 2 below. Many of those is a
contradiction between two sections that the split either eliminates or
makes them easier to resolve.

[Linda] This concern has been substantially addressed in the changes in addressing your earlier comments. Section 2 now explicitly identifies the two advertisement types and their terminology, Section 2.4 contains the Client Route procedures, Section 2.5 contains the SD-WAN Underlay Route procedures, and Section 2.6 distinguishes the corresponding error-handling rules. The revised text also now states explicitly that Client Routes follow RFC 9012, while SAFI 74 is outside the applicability scope defined by RFC 9012 and is specified by this document.

With these changes we believe a full restructuring into three new top-level sections is no longer necessary.


(4) <major> The two route types have no consistent names

Designations used in the document for the routes on the new SAFI 74 -
many of them: "SD-WAN NLRI", "SD-WAN Underlay NLRI", "SD-WAN Underlay
UPDATE", "SD-WAN Underlay Tunnel Update", "underlay route(s)", "SD-WAN
Hybrid NLRI" ... and I give up now. This continues even in the IANA
considerations.

For the routes on the existing AFI/SAFIs: "client route(s)" predominantly,
plus "client route reachability" and "customer prefixes".

The most consequential of these is the Section 6.1 heading, which names the
SAFI carrying underlay routes the Overlay SAFI - see the comments at lines
1839 and 1842.

Separately, "underlay" qualifies four different objects with no distinction
drawn between them: "underlay route" (the NLRI), "underlay tunnel"
(the tunnel between two WAN ports), "underlay link", "underlay network".
Section 2.5.4 collides with itself: the heading reads "Multiple Tunnels
attached to One Underlay Route" and the body three lines later reads
"An underlay tunnel passes through only one SD-WAN Hybrid Tunnel".

Remedy. Define exactly two terms in Section 1.3 and use them without
variation throughout. I suggest:

   *  client routes - routes on AFI/SAFI 1/1, 2/1, 1/128 or 2/128 that are
      to be forwarded over an SD-WAN Hybrid Tunnel;

   *  SD-WAN SAFI routes - the typed NLRI on AFI/SAFI 1/74 or 2/74
      advertising the properties of a WAN port and its associated tunnel and
      IPsec parameters.

Then sweep the document: replace every one of those designations with
"SD-WAN SAFI routes", retaining "SD-WAN NLRI" only where the encoding
construct itself is meant (the figures and field definitions in Section
2.2.1); rename Section 6.1 to "SD-WAN SAFI" and ask IANA to correct the
registry name; and reserve "underlay tunnel", "underlay link" and "underlay
network" for the physical and logical objects, defining each in Section 1.3.
While sweeping, also s/distributed to other BGP peers/propagated and
s/distributed to other peers/propagated (lines 547-548, 1585) - see the
comment at line 448.

This sweep is best done after the restructuring in issue (3) rather than
before, since the split puts the two route types in separate sections and
makes a term used in the wrong one immediately visible.
[Linda]  This concern has been substantially addressed by the changes in addressing your earlier comments. Section 2 now defines two consistent route terms: “Client Route” for AFI/SAFI 1/1, 2/1, 1/128, and 2/128, and “SD-WAN Underlay Route” for AFI/SAFI 1/74 and 2/74. The term “SD-WAN NLRI” is reserved for the NLRI encoding itself.

We will make a final terminology sweep to remove remaining older designations, correct the Section 6.1 heading, and keep “underlay tunnel”, “underlay link”, and “underlay network” for the corresponding non-route objects.

Section 1.3 Add the two route terms:
Client Route: A route advertised using AFI/SAFI 1/1, 2/1, 1/128, or 2/128 that is associated with an SD-WAN Hybrid Tunnel.

SD-WAN Underlay Route: A route advertised using AFI/SAFI 1/74 or 2/74 whose SD-WAN NLRI identifies a WAN port or ports and whose associated Tunnel Encapsulation Attribute advertises tunnel-related properties.

Section 2.2.1 heading

Old:
2.2.1. NLRI for SD-WAN Underlay Tunnel Update

New:
2.2.1. NLRI for SD-WAN Underlay Route

Section 2.5.1 heading

Old:
SD-WAN Hybrid NLRI without Encapsulation Extended Community

New:
SD-WAN Underlay Route without Encapsulation Extended Community

Section 6.1 heading

Old:
6.1. SD-WAN Overlay SAFI

New:
6.1. SD-WAN SAFI

Section 2.5.4
Old:
2.5.4. Multiple Tunnels attached to One Underlay Route

New:
2.5.4. Multiple Tunnels Associated with One SD-WAN Underlay Route

(5) <major> No applicability or deployment considerations section: text
    suggestions have been provided

The document positions BGP as a mechanism for SD-WAN secure tunnel
establishment without stating anywhere what that choice assumes, what was
not analysed, or that alternatives exist. A reader encountering this
specification has no way to learn any of it from the document or its related
BESS document.

This is not a request to argue against the approach, and it is explicitly
not a request for a comparative analysis - writing one would be substantial
work and is not what this document is for (neither is it in IDR WG charter).
This is a request that the document be accurate about its own boundaries,
prominently enough that the accuracy reaches a reader.

Every statement in the suggested text is a statement about what this document
does and does not contain. None of them is a claim about the technology, so
none is arguable on technical grounds: the document either analysed RR
compromise or it did not, either evaluated alternatives or did not. The
deployment assumptions the mechanism depends on - a single administrative
authority, a trusted RR holding every participant's security parameters, a
policy-constrained walled garden - are currently stated nowhere a deployer
would find them, and a deployment that violates them has a serious security
exposure the document gave no warning of. Section 2.6.2, at line 1590,
already requires local policy to create a "walled garden", in an
error-handling subsection, with the term undefined.

Let me share some specifics to help construct a 'Deployment Considerations
and Applicability Statement' section in the document:

   *  A new top-level section immediately following the Introduction.

   *  A sentence in the first or second paragraph of Section 1 pointing to
      it.

   *  A pointer from Security Considerations (Section 5) to Section
      [APPLICABILITY].2, so that security reviewers reach it.


   Here is something to help get started on the suggested new top-level section:

      [N]. Applicability and Deployment Considerations

      This document specifies BGP signalling mechanisms for advertising
      the properties of SD-WAN edge nodes and their underlay tunnels,
      and for conveying the parameters used to establish IPsec security
      associations between SD-WAN edge nodes. This section states the
      deployment context that those mechanisms assume, and identifies
      analysis that, being out of scope, this document does not perform.

      [N].1. Deployment context

      The mechanisms specified in this document assume all of the
      following. They are not specified for use in deployments where any
      of these does not hold.

      *  All participating SD-WAN edge nodes and all participating BGP
         Route Reflectors are under a single administrative authority,
         and that authority controls the configuration and the policy of
         every participant.

      *  The BGP Route Reflector is a trusted component of that
         authority's SD-WAN controller. Every participating edge node
         relies on the Route Reflector to receive, and to correctly
         redistribute without modification, the tunnel and security
         parameters advertised by every other participating edge node.

      *  BGP sessions between edge nodes and the Route Reflector are
         constrained by local policy to a closed set of authorised
         participants. This constraint is referred to elsewhere in this
         document as a "walled garden" (see Section <add a new and short
         subsection as N.1.1 to describe this>), and the properties
         described in this document depend on it.

      *  The cryptographic algorithms, transforms and security profiles
         in use are provisioned consistently across participants by the
         SD-WAN controller or management system. The mechanisms in this
         document perform no negotiation of these parameters; a
         participant whose provisioned parameters do not match those of
         its peer will not establish a security association with that
         peer.

      These mechanisms are not specified for use between mutually
      distrusting parties, across administrative boundaries, or in any
      deployment in which the Route Reflector is not trusted with the
      tunnel and security parameters of all participants.

      [N].2. Analysis out of scope of this document

      The following have not been analysed in this document as they are
      outside its scope. Implementers and deployers are advised to
      consider them before adopting these mechanisms.

      *  Comparison with alternative mechanisms. Other mechanisms exist
         for establishing IPsec security associations between SD-WAN
         edge nodes, including the Internet Key Exchange Protocol
         Version 2 (IKEv2) [RFC7296]. This document does not evaluate
         those mechanisms, does not compare them with the mechanisms
         specified here, and makes no claim that the mechanisms
         specified here are preferable to them in any respect. The
         selection of a mechanism for a given deployment is a matter for
         the deployer.

      *  Consequences of Route Reflector compromise. The tunnel and
         security parameters of all participating edge nodes, including
         any key material carried in the Sub-TLVs defined in Section
         [SUBTLVS], are received and redistributed by the Route
         Reflector. The consequences of a compromised, misconfigured or
         coerced Route Reflector have not been analysed in this
         document.

      *  Forward secrecy. The forward secrecy properties of security
         associations established using parameters distributed by BGP
         have not been characterised in this document. These properties
         differ from those of mechanisms in which the two endpoints of a
         security association perform ephemeral key agreement directly
         with one another.

      *  Control plane load and convergence. The volume of BGP UPDATE
         messages generated by security association rekeying at scale,
         and its effect on BGP convergence and on Route Reflector
         dimensioning, have not been analysed in this document. Section
         [OPERATIONAL] provides operational guidance but no quantitative
         analysis.

      *  Behaviour under partial or reordered delivery. BGP does not
         guarantee that successive advertisements for the same NLRI are
         delivered to every recipient, or that they are delivered in the
         order in which they were originated. The behaviour of the
         mechanisms in this document when rekey advertisements are lost,
         coalesced or reordered has not been analysed.

      *  Interaction with other mechanisms operating on the same
         security associations. The behaviour of these mechanisms in a
         deployment where security associations between the same pair of
         edge nodes may also be established or modified by another
         mechanism has not been analysed.

Now, this section can cover more aspects than the ones suggested above - this
is something that I accumulated through the review. There are a few other
comments/suggestions in the detailed review that probably end up adding
text here: (a) the Section 3 policy problem (line 1614), if resolved
by reframing it as deployment considerations, puts the policy expectations
there in non-normative terms; (b) the transport-security requirement currently
in the Introduction (line 148) moves there, normatively; and (c) the statement
that the mechanisms are not RR-specific (line 179) moves there too. I let
authors decide how to organize all these as subsections (similar to the
walled-garden thing) under N.1 or N.2.

This makes it possible to put cross-references from some challenging and
problematic text in the document to the appropriate section/subsection
without repeating or ignoring those aspects.

And finally for this point, some text suggestions for referencing this new
section:

   From Section 1, first or second paragraph:

      The deployment context that these mechanisms assume, and the
      analysis that this document does not perform, are described in
      Section [APPLICABILITY]. Readers considering these mechanisms for
      deployment are advised to refer to that section.

   From Section 5, Security Considerations, as a new paragraph:

      Section [APPLICABILITY].2 enumerates security-relevant analysis
      that this document does not perform, including the consequences of
      compromise of the Route Reflector and the forward secrecy
      properties of security associations established using parameters
      distributed by BGP. Those items are not addressed in this section.

I hope this sets up the narrow scope for this document and clarifies clearing
things that are out of scope which others (especially from SEC area) may
be looking for.
[Linda] In addressing your earlier comments, the Introduction and Security Considerations now identify the RR as part of the SD-WAN Controller and describe its authorization role, Section 2.3 explicitly separates BGP signaling from IPsec processing, and Section 2.6.2 identifies the policy-constrained “walled garden” deployment assumption.

We agree that the deployment assumptions and the analysis that is outside the scope of this document should be made more visible. Rather than adding a new top-level section, we can add concise applicability text in the Introduction, define the “walled garden” deployment assumption in Section 1.3, and add a short statement in the Security Considerations identifying the major security-related topics that this document does not analyze.

Section 1 — Introduction

Add after the paragraph that defines the RR as part of the SD-WAN Controller.

Old:
In the context of this document, BGP Route Reflector (RR) is the component of the SD-WAN Controller system that receives the BGP UPDATE from SD-WAN edges and in turn propagates the information to the intended peers that are authorized to communicate via the SD-WAN overlay network.

New:
In the context of this document, BGP Route Reflector (RR) is the component of the SD-WAN Controller system that receives the BGP UPDATE from SD-WAN edges and in turn propagates the information to the intended peers that are authorized to communicate via the SD-WAN overlay network.

The mechanisms specified in this document are intended for a controlled SD-WAN environment in which the participating SD-WAN edge nodes and RRs operate under a common administrative authority and are constrained by policy to an authorized set of participants. They are not specified for use between mutually distrusting administrative domains.

Add the definition of “Walled Garden” to the Section 1.3 (Terminology)
Walled Garden: A controlled SD-WAN deployment in which participating SD-WAN edge nodes and RRs are authorized and managed under a common administrative authority, and BGP sessions and SD-WAN tunnel advertisements are constrained by local policy to those authorized participants.

Last sentence of Security Considerations:
Old:
This specification does not define deployments across fully untrusted networks, but if such environments are used, strong transport security becomes a MUST, and additional validation mechanisms may be required to maintain SD-WAN tunnel and routing integrity.

New:
This specification does not define deployments across fully untrusted networks, but if such environments are used, strong transport security becomes a MUST, and additional validation mechanisms may be required to maintain SD-WAN tunnel and routing integrity. This document does not analyze the consequences of compromise or misconfiguration of the RR/Controller, the forward-secrecy properties of IPsec SAs established using parameters distributed by BGP, the control-plane impact of large-scale IPsec rekeying, or provide a general comparison with alternative mechanisms for SD-WAN discovery or IPsec SA establishment.


(6) <major> Repetition and drift between the four validation sections

Sections 2.1.1 (the summary), 2.4.2, 2.5.2 and 2.6 all state overlapping
validation procedures, and they seem to have drifted apart. Several of the
detailed comments below are largely the same procedure being stated in
two or three places with different content. This is not an editorial thing
as it is not just about duplication but also contradictions that make
corrections/updates that much more harder.

This should get largely resolved by the split suggested in (3) above, which
puts each validation procedure in the section that owns it and removes the
duplication. One statement of each validation procedure, in the section that
owns the route type it applies to, with cross-references rather than
restatements.
[Linda] In addressing your earlier comments, Sections 2.4 and 2.5 now separately define the procedures for Client Routes and SD-WAN Underlay Routes, and Section 2.6 separately defines the corresponding error handling.
We agree that Section 2.1.1 should not independently restate route-specific validation procedures. We will make it a short common validation overview and refer to Sections 2.4.2 and 2.5.2 for the route-specific procedures, with Section 2.6 remaining the authoritative error-handling section.

Section 2.1.1 (Summary of Validation Procedure)

Old:
The validation procedure for the SD-WAN Hybrid tunnel TLV has the following steps

  1.  Validate tunnel TLV encoding and Sub-TLV encoding (per [RFC9012] and sections 2.2 and 2.3 of this draft)
  2.  Check that Sub-TLVs are valid for NLRI type in route (see above summarized in Table 1) and ignore invalid Sub-TLVs (per [RFC9012])
  3.  Validate that the tunnel egress endpoint is a reachable IP address based on the BGP next-hop resolution rules.
  4.  Check if both the Color Sub-TLV and Extended Community for Color exist, if so prefer the Extended Community for Color.
After the SD-WAN Hybrid Tunnel TLV has been validated, the SD-WAN Peer processes based on the NLRI as (underlay route or client route) as described in sections 2.4 and 2.5. Prior to installing a route with a SD-WAN tunnel as an active route, the BGP peer installing the route MUST also validate that the SD-WAN tunnel and underlay links are active.

New:
The SD-WAN Hybrid Tunnel TLV and its Sub-TLVs MUST first be validated for correct encoding and applicability as specified in this section and Section 2.3. Route-specific validation procedures are specified in Section 2.4.2 for Client Routes and Section 2.5.2 for SD-WAN Underlay Routes. Error handling is specified in Section 2.6.

After the SD-WAN Hybrid Tunnel TLV has been validated, the receiving BGP speaker processes it according to the applicable route procedure.

Section 2.6

Old:
The Error handling for SD-WAN VPN support has two components: error handling for Tunnel Encapsulation signaling (Encapsulation Extended Community and Tunnel Encapsulation Attribute) and error handling for SD-WAN Underlay Routes.

New:
This section specifies the error-handling procedures for validation failures identified by the procedures in Sections 2.4 and 2.5. It covers Tunnel Encapsulation signaling and SD-WAN Underlay Route errors.

(7) <question> Was the discovery/keying split ever considered?

The document's own stated motivation for the design is discovery scaling
(lines 1028-1034). That argument supports carrying reachability, NAT
properties, port characteristics and crypto capabilities in BGP. It does not
by itself support carrying key material - those are separable, and a design
that carried the first and left SA establishment to an existing
key-management protocol would be a materially different document. RFC 7018,
which this document already carries as a reference and does not cite, frames
the auto-discovery-VPN problem that split addresses.

So, a question for the WG: was that split - BGP for discovery, an existing
protocol for keying - considered? If it was and the WG chose otherwise, a
pointer to that discussion addresses the question and should go in the
shepherd writeup. If it was not, that fact belongs in the applicability
statement of issue (5), as part of what was not analysed. This is just
something that I expect to come up during IESG Evaluation and it is better
if it were addressed in the document (perhaps in the applicability analysis).

[Linda] The intent of this document is not to define a key-management mechanism. The IPsec SA Property Sub-TLVs defined in this section specify encodings that allow BGP UPDATE messages to carry IPsec-related information to authorized peers.
How the advertised IPsec parameters are generated, negotiated, or provisioned is outside the scope of this document. They may be provided by an SD-WAN controller or management system, IKEv2, or another mechanism. This document only defines how that information is carried in BGP UPDATE messages; BGP does not establish, negotiate, derive, or maintain IPsec SAs.

Wording change to make it clear:
Section 2.3:

Old:
The IPsec SA Property Sub-TLVs defined in this section are used by BGP only to advertise IPsec-related parameters associated with SD-WAN Hybrid Tunnels.

New:
The IPsec SA Property Sub-TLVs defined in this section specify encodings that allow BGP UPDATE messages to carry IPsec-related parameters associated with SD-WAN Hybrid Tunnels to authorized peers.


DETAILED REVIEW

The rest of the comments are provided inline in the idnits output:


14                  BGP UPDATE for SD-WAN Edge Discovery
15                 draft-ietf-idr-sdwan-edge-discovery-29

<major> The title does not describe what the document specifies. I suggest
"Advertising SD-WAN Edge Node and Underlay Tunnel Properties in BGP" -
please let me know if you don't agree. My biggest concern is that this is
not about BGP UPDATE messages!

[Linda] How about “SD-WAN Edge and Underlay Tunnel Discovery Using BGP” as the title?

19   The document describes the BGP mechanisms for SD-WAN (Software
20   Defined Wide Area Network) edge node attribute discovery.  These
21   mechanisms include a new tunnel type and sub-TLVs for the BGP Tunnel-
22   Encapsulation Attribute (RFC9012) and set of NLRI (network layer
23   reachability information) for SD-WAN underlay information.

<minor> How about the following suggestion to make the abstract clear?

      CURRENT
      The document describes the BGP mechanisms for SD-WAN (Software
      Defined Wide Area Network) edge node attribute discovery. These
      mechanisms include a new tunnel type and sub-TLVs for the BGP
      Tunnel-Encapsulation Attribute (RFC9012) and set of NLRI (network
      layer reachability information) for SD-WAN underlay information.

      SUGGEST
      This document specifies BGP mechanisms for advertising the
      attributes of SD-WAN (Software-Defined Wide Area Network) edge
      nodes. These mechanisms comprise a new tunnel type and associated
      Sub-TLVs for the BGP Tunnel Encapsulation Attribute, and a new
      Subsequent Address Family Identifier (SAFI) carrying a typed NLRI
      for SD-WAN underlay tunnel information.
[Linda] Thanks for the suggestion. We can take your advice and change the Abstract to the following:
This document specifies BGP mechanisms for SD-WAN (Software-Defined Wide Area Network) edge node attribute discovery. These mechanisms comprise a new tunnel type and associated Sub-TLVs for the BGP Tunnel Encapsulation Attribute, and a new Subsequent Address Family Identifier (SAFI) carrying a typed NLRI for advertising SD-WAN underlay tunnel information.


27   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
28   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
29   document are to be interpreted as described in [RFC2119] [RFC8174]
30   when, and only when, they appear in all capitals, as shown here.

271   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
272   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
273   "OPTIONAL" in this document are to be interpreted as described in BCP
274   14 [RFC8174] when, and only when, they appear in all capitals, as
275   shown here.

<major> BCP 14 boilerplate is duplicated and neither of them is correct.

[Linda] We will retain a single copy near the beginning of the document and replace it with the exact boilerplate specified by RFC 8174.
Old:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119] [RFC8174]
when, and only when, they appear in all capitals, as shown here.

New:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.


148   BGP [RFC4271] serves as the control plane for these SD-WAN
149   deployments.  For SD-WAN implementations using BGP, the BGP Speaker
150   SHOULD establish a secure transport connection with each SD-WAN edge
151   operating under the same BGP control plane instance.  This secure
152   transport SHOULD support authentication and integrity, but MAY also
153   support confidentiality.  The BGP speaker can be an IBGP peer or a
154   RR.
156   SD-WAN deployments SHOULD use TCP-AO [RFC5925] to provide
157   authentication and integrity between the RR and each BGP Peer.  Other
158   mechanisms that can provide authentiation, integrity, and
159   confidentiality are in the process of being defined by the IETF.
160   Examples of these mechanisms are: BGP over QUIC [draft-retana-idr-
161   bgp-quic], BGP over TLS/TCP [draft-wirtgen-bgp-tls], or Securing
162   BGPv4 using IPsec [draft-ward-bgp-ipsec].  SD-WAN deployments MAY use
163   mechanisms that support authentication, integrity, and
164   confidentiality.

<major> So many BCP 14 keywords in the Introduction, stating requirements
that are repeated in different ways elsewhere at two further strengths -
Section 4 at lines 1780-1782 makes secure transport RECOMMENDED, and Section
5 at lines 1815-1816 makes it optional. This is contradictions.

As suggested, please move these out into the applicability and deployment
considerations section. They are a basic requirement of the solution - the
mechanism does not work safely without a secure transport - and a basic
requirement belongs in the body of the document.

Suggest: state the transport-security requirement once, normatively, in the
new section; delete the Section 1 statements and replace them with a
 non-normative sentence pointing at it; delete Section 4's RECOMMENDED
restatement; and rewrite Section 5 to reference the requirement and analyse
what happens when it is not met, rather than to restate it at a weaker strength.
[Linda] We can make the following changes to consolidate the normative requirement in one place and remove the inconsistent restatements. The Introduction will state the requirement, Section 4 will refer to it rather than restate it, and Section 5 will describe the security consequences if the requirement is not met.

Section 1 (Introduction)
Old:
BGP [RFC4271] serves as the control plane for these SD-WAN deployments. For SD-WAN implementations using BGP, the BGP Speaker SHOULD establish a secure transport connection with each SD-WAN edge operating under the same BGP control plane instance. This secure transport SHOULD support authentication and integrity, but MAY also support confidentiality. The BGP speaker can be an IBGP peer or a RR.

SD-WAN deployments SHOULD use TCP-AO [RFC5925] to provide authentication and integrity between the RR and each BGP Peer. Other mechanisms that can provide authentiation, integrity, and confidentiality are in the process of being defined by the IETF. Examples of these mechanisms are: BGP over QUIC [draft-retana-idr-bgp-quic], BGP over TLS/TCP [draft-wirtgen-bgp-tls], or Securing BGPv4 using IPsec [draft-ward-bgp-ipsec]. SD-WAN deployments MAY use mechanisms that support authentication, integrity, and confidentiality.

New:
BGP [RFC4271] serves as the control plane for these SD-WAN deployments. BGP sessions used to exchange the SD-WAN information defined in this document MUST provide peer authentication and integrity protection. TCP-AO [RFC5925] is one mechanism that provides these properties. Other mechanisms that provide equivalent or stronger protection, including confidentiality, MAY also be used. The BGP speaker can be an IBGP peer or an RR.

Section 4  (Manageability Considerations)
Old:
The use of secure transport connections (e.g., BGP over IPsec/TLS) is RECOMMENDED to ensure manageability in untrusted environments.

New:
The secure-transport requirements for BGP sessions carrying the SD-WAN information defined in this document are specified in Section 1.

Section 5 (Security Considerations)

Old:
However, in closed or "walled garden" deployments, where SD-WAN edge nodes and the RR (SD-WAN controller) are within a trusted, secured environment (e.g., a private MPLS backbone or physically secured enterprise network), the risk of interception or tampering is significantly reduced. In such cases, the use of secure transport is optional, and operators may choose to run BGP over standard TCP, based on their internal risk assessment.

New:
In closed or "walled garden" deployments, where SD-WAN edge nodes and the RR are within a trusted and secured environment, the risk of interception or tampering may be reduced. However, the peer-authentication and integrity requirements specified in Section 1 still apply.


179   While the BGP RR functionin the SD-WAN controller scenario could be
180   implemented with targeted BGP sessions control by policy and secured
181   by security features that supply authentication, integrity, and
182   confidentiality, the authors chose to limit the descriptions to the
183   BGP RR.  This choice is due to the current status of BGP security
184   issues and not the BGP peer exchanges described in this text.  Due to
185   this decision, the BGP interactions are not strictly limited to BGP
186   RR features

<major> This paragraph comes across as an authorial commentary about a drafting
decision rather than specification. It is also the only place the document
says the mechanisms are not RR-specific, which is information the reader
needs - and it contradicts the RR-as-trust-anchor point by disclaiming the
centring Section 1 has just established. If there is a deployment model without
the controller as the RR (i.e.. iBGP full mesh), please specify how the
procedures work, if not, then suggest to remove this.

[Linda] Its intent is to state that the deployment model specified in this document is RR-based, with the RR acting as part of the SD-WAN Controller and providing the central point for authorization, policy, and controlled propagation of SD-WAN information. We can make the following changes to state this directly and remove the discussion of alternative BGP peering arrangements.
Section 1
Old:
While the BGP RR functionin the SD-WAN controller scenario could be implemented with targeted BGP sessions control by policy and secured by security features that supply authentication, integrity, and confidentiality, the authors chose to limit the descriptions to the BGP RR. This choice is due to the current status of BGP security issues and not the BGP peer exchanges described in this text. Due to this decision, the BGP interactions are not strictly limited to BGP RR features

New:
The deployment model specified in this document is based on a BGP Route Reflector that is part of the SD-WAN Controller. The RR provides the central point for applying authorization and policy and for propagating SD-WAN route and tunnel information to authorized peers.


156   SD-WAN deployments SHOULD use TCP-AO [RFC5925] to provide
157   authentication and integrity between the RR and each BGP Peer.  Other
158   mechanisms that can provide authentiation, integrity, and
159   confidentiality are in the process of being defined by the IETF.

<major> This makes [RFC5925] a normative reference.

[Linda] Changed [RFC5925] a normative reference


160   Examples of these mechanisms are: BGP over QUIC [draft-retana-idr-
161   bgp-quic], BGP over TLS/TCP [draft-wirtgen-bgp-tls], or Securing
162   BGPv4 using IPsec [draft-ward-bgp-ipsec].

1798   over new IETF technologies (e.g. BGP over QUIC [draft-retana-idr-bgp-
1799   quic], BGP over TLS/TCP [draft-wirtgen-bgp-tls], or Securing BGPv4
1800   using IPsec [draft-ward-bgp-ipsec]) which provide authentication,
1801   confidentiality, and Integrity.

730         Contextual Note 1: The ID Length is set to 4 octets, but ID in
731         [draft-ietf-bess-secure-evpn-02] under development in the IETF

<major> Three individual (non-WG) drafts, cited twice each, with no references!
Citing them as "in the process of being defined by the IETF" is problematic
since none of them can be relied on by this specification and hence quite
meaningless. For confidentiality, the only available mechanism is to use IPSec
as a tunnel. This topic was raised, discussed, and addressed during the review
of the BESS SD-WAN document. Those changes need to propagate into this document
where they are absolutely a MUST have for this solution. Please correct me if
I am wrong.

[Linda] This concern has already been addressed in the changes made in addressing your earlier comments. The Introduction no longer cites the three individual BGP transport-security drafts. It now states a single requirement that BGP sessions carrying the SD-WAN information defined in this document provide peer authentication and integrity protection, with TCP-AO [RFC5925] given as one mechanism. Other mechanisms providing equivalent or stronger protection may also be used.
We will also remove the remaining references to those individual drafts from the Security Considerations.

Here are the wording changes:

Section 5 (Security Considerations):  Remove only the obsolete individual-draft examples.

Old:
Some network operators running SD-WAN edge over public or untrusted networks desire confidentiality as well as authentication and integrity. In this case, network operators can consider running BGP over new IETF technologies (e.g. BGP over QUIC [draft-retana-idr-bgp-quic], BGP over TLS/TCP [draft-wirtgen-bgp-tls], or Securing BGPv4 using IPsec [draft-ward-bgp-ipsec]) which provide authentication, confidentiality, and Integrity.

New:
Some network operators running SD-WAN edge over public or untrusted networks may require confidentiality in addition to authentication and integrity. In such deployments, a mechanism providing confidentiality, such as IPsec [RFC4301], can be used to protect the path between the SD-WAN edge and the RR.


291   Advertise Underlay Routes (SD-WAN NLRIs) with SD-WAN Hybrid Tunnel
292   Encapsulation Attribute:  A BGP speaker advertises SD-WAN NLRI for
293      IPv4/IPv6 (AFI/SAFI 1/74 or 2/74) with the NEXT_HOP attribute set
294      to the local address of the advertising speaker, and includes a

421   describe the processing.  The SD-WAN NLRI is originated using the
422   loopback address of the C-PE.

332         (IANA assigned).  The NextHop Field in the BGP update indicates
333         the tunnel egress endpoint and this field SHOULD be set to the
334         BGP Peer Address for the SD-WAN Peer.

<major> A few problems with the Next Hop, and the first is the more serious.

(a) The encoding is genuinely absent. RFC 4760 requires each AFI/SAFI
specification to define the format of the Next Hop Network Address field in
MP_REACH_NLRI. For 1/74 and 2/74 this document does not, and because the
SD-WAN SAFI is outside RFC 9012's scope (issue (1) above) there is no other
document that could supply it. Unstated: the permitted lengths of the field
for each AFI; whether an IPv6 next hop may be carried for AFI 1/74, in the
manner of RFC 8950; whether a link-local address may accompany a global IPv6
next hop for 2/74, and if so in what order; and what a receiver does with a
length it does not recognise. This was pointed out in my RTGDIR early review,
still open.

(b) The semantics are stated in at least four places, with three different
answers. "The local address of the advertising speaker", "the loopback
address of the C-PE" and "the BGP Peer Address for the SD-WAN Peer" are
three different specifications. The first is indeterminate - an edge node
with several WAN ports and a loopback has several local addresses. The third
is at SHOULD strength, which conflicts (c) below.

[Linda] The changes in addressing your earlier comments now defines the SAFI 74 next-hop procedures, but the MP_REACH_NLRI Next Hop encoding still needs to be explicit and the existing descriptions should be made consistent. We can make the following changes to specify the Next Hop length for AFI/SAFI 1/74 and 2/74 and consistently identify the Next Hop with the advertising SD-WAN edge, normally its loopback/SD-WAN Node ID.

Section 2.2.1: Add the following paragraph after the first paragraph that introduces SAFI 74:
For AFI/SAFI 1/74, the MP_REACH_NLRI Next Hop Network Address field MUST contain a 4-octet IPv4 address. For AFI/SAFI 2/74, it MUST contain a 16-octet IPv6 address. The Next Hop identifies the advertising SD-WAN edge and SHOULD be the same address as the SD-WAN Node ID, normally the loopback address.

Section 2 (Advertise SD-WAN Underlay Routes)
Old:
Advertise SD-WAN Underlay Routes: A BGP speaker advertises SD-WAN Underlay Routes using AFI/SAFI 1/74 or 2/74. The NEXT_HOP is set to a local address of the advertising SD-WAN edge node, and the UPDATE includes a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV.
New:
Advertise SD-WAN Underlay Routes: A BGP speaker advertises SD-WAN Underlay Routes using AFI/SAFI 1/74 or 2/74. The NEXT_HOP is set to a reachable address of the advertising SD-WAN edge node, typically its loopback address, and the UPDATE includes a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV.

Section 2.1.2:
Old:
The SD-WAN NLRI is originated using the loopback address of the C-PE.

New:
The SD-WAN NLRI is originated by the C-PE, and the BGP Next Hop is set to a reachable address of the C-PE, typically its loopback address.


1442   Remote nodes use the SD-WAN Node ID carried in the SD-WAN SAFI to
1443   correlate client routes whose NextHop address matches the SD-WAN Node
1444   ID.  This allows the receiving node to associate each client route
1445   with the appropriate set of tunnel attributes advertised by the
1446   corresponding SD-WAN edge node.

1633   *  The NextHop in the client route update matches a known SD-WAN Node
1634      ID.

(c) The correlation rule depends on the Next Hop and is stated only
in procedure and advisory sections. Binding a client route to its tunnel
attributes turns entirely on the client route's Next Hop being equal to the
SD-WAN Node ID. That is the load-bearing rule of the whole mechanism, and it
appears once inside a procedure section and once as a SHOULD-level bullet in
Section 3.1, which is advisory (see the comment at line 1614). It is nowhere
stated as a requirement on the originator to set the Next Hop accordingly,
so an implementer reading Section 2.4 alone will not know to do it - and
Section 2.1's SHOULD at line 333 points at a different value.

Two consequences the document does not address. First, it constrains
next-hop handling on the client routes: any deployment step that rewrites
the next hop (next-hop-self at an ASBR, an RR configured to change it, a
route server) breaks the correlation silently, and nothing says the
mechanism assumes the next hop is preserved end to end. Second, the
document's only worked example contradicts the rule - Section 3.2.1
sets NextHop to 198.51.100.10 and the SD-WAN Node ID to 1.1.1.1 (see the
comment at line 1690).

The fix has three parts, and the split in issue (3) determines where each
lands. First, specify the encoding in the SD-WAN SAFI section: permitted
lengths per AFI, next-hop address family decoupled from the NLRI AFI,
link-local handling, and the malformed condition - Section 2.1 of RFC 9830
does this in one paragraph and is worth copying almost directly. Second,
state the Next Hop semantics once, per route type, in the section that owns
that route type; reconcile the three current answers into one for the SD-WAN
SAFI and delete the other two occurrences rather than leaving them as
restatements. Third, promote the correlation rule to a normative requirement
on both ends - the originator MUST set the client route Next Hop to its
SD-WAN Node ID, and the receiver correlates on that equality - placed in the
interaction section that issue (3) creates, and state the assumption that
the Next Hop is preserved between originator and receiver, and what happens
when it is not. While in the same text: state that the Tunnel Encapsulation
attribute is carried with SAFI 74 and that this document defines that usage,
and state the capability requirement for AFI/SAFI 1/74 and 2/74.

[Linda] This issue has been addressed in the changes for resolving your earlier comments. The document now distinguishes the BGP Next Hop from the SD-WAN Node ID and states that the Next Hop is a reachable address of the advertising SD-WAN edge, typically its loopback address. Section 2.2.1 also explicitly defines the MP_REACH_NLRI Next Hop encoding for AFI/SAFI 1/74 and 2/74.


346         Public Key, IPsec SA Proposal, and Simplified IPsec SA.  If a
347         Tunnel Egress End Point is not included in SD-WAN Hybrid Tunnel
348         TLV, it is treated as if a Tunnel Egress End Point SubTLV is
349         included with an address family identifer of 0.

386      *2 - if a Tunnel Egress End Point (EP) Sub-TLV is not included,
387      the SD-WAN Hybrid tunnel treats as if Tunnel egress End Point
388      exists with AFI of 0.

1341   1.  Check for Well-formed SD-WAN Hybrid Tunnel TLV:  If the SD-WAN
1342      Hybrid Tunnel TLV does not have a Tunnel Egress Endpoint SubTLV,
1343      the tunnel validation process treats it as if a Tunnel Egress
1344      SubTLV exists with an AFI of 0(Per [RFC9012], a Tunnel Egress
1345      SubTLV exists with an AFI of 0 uses the packet Next Hop as the
1346      tunnel endpoint).

<major> This construct - treating an absent Tunnel Egress Endpoint sub-TLV
as Address Family 0 - appears multiple times times, and for client routes it
contradicts Section 13 of RFC 9012. For client routes the document uses
AFI/SAFI 1/1, 2/1, 1/128 and 2/128 (line 355), every one of which is in the
first-paragraph list of Section 6 of RFC 9012. For those, Section 13 of RFC
9012 says: "a TLV that does not contain exactly one Tunnel Egress Endpoint
sub-TLV MUST be treated as if it contained a malformed Tunnel Egress
Endpoint sub-TLV" - and a malformed Tunnel Egress Endpoint sub-TLV means
"the entire TLV MUST be ignored and MUST be removed from the Tunnel
Encapsulation attribute before the route carrying that attribute is
distributed." The document's rule produces the opposite outcome from the
same input: an RFC 9012 implementation drops the TLV, an implementation of
this document builds a tunnel to the next hop. That is a straightforward
contradiction and affects interoperability failure. Why not follow RFC 9012?

[Linda]  Agree. For Client Routes, the Tunnel Encapsulation Attribute procedures of RFC 9012 apply unchanged, including the requirement for the Tunnel Egress Endpoint Sub-TLV. The “assume AFI=0 when the Tunnel Egress Endpoint Sub-TLV is absent” behavior is intended only for SD-WAN Underlay Routes using SAFI 74. We can make the following changes to scope that rule accordingly and remove the conflicting Client Route text.

Section 2.1 (SD-WAN Hybrid Tunnel TLV Encoding)
Old:
If a Tunnel Egress End Point is not included in SD-WAN Hybrid Tunnel TLV, it is treated as if a Tunnel Egress End Point SubTLV is included with an address family identifier of 0.

New:
For SD-WAN Underlay Routes using SAFI 74, if a Tunnel Egress Endpoint Sub-TLV is not included in the SD-WAN Hybrid Tunnel TLV, it is treated as if a Tunnel Egress Endpoint Sub-TLV with an Address Family value of 0 were included. For Client Routes, Tunnel Egress Endpoint processing follows [RFC9012].

Table 1 footnote *2
Old:
*2 - if a Tunnel Egress End Point (EP) Sub-TLV is not included, the SD-WAN Hybrid tunnel treats as if Tunnel egress End Point exists with AFI of 0.

New:
*2 - For SD-WAN Underlay Routes, if a Tunnel Egress Endpoint Sub-TLV is not included, it is treated as if a Tunnel Egress Endpoint Sub-TLV with AFI 0 were included. For Client Routes, [RFC9012] applies.

Section 2.4.2 : simplify the Step 1 so the Client Route processing clearly follows RFC 9012
Old:
Check for Well-formed SD-WAN Hybrid Tunnel TLV: If the SD-WAN Hybrid Tunnel TLV does not have a Tunnel Egress Endpoint SubTLV, the tunnel validation process treats it as if a Tunnel Egress SubTLV exists with an AFI of 0 (Per [RFC9012], a Tunnel Egress SubTLV exists with an AFI of 0 uses the packet Next Hop as the tunnel endpoint). Also, per [RFC9012], MALFORMED Sub-TLVs are ignored and a Sub-TLV with an unknown type is ignored. The SD-WAN Hybrid Tunnel TLV only processes the first instance of a Sub-TLV except for the IPsec SA ID Sub-TLV. For the IPsec SA ID Sub-TLV, if the IPsec SA Identifiers are unique are multiple IPsec SA ID sub-TLVs are processed. If all the IPsec SA Identifies are not unique, the second IPsec SA ID Sub-TLV is ignored and not propagated.

New:
Check for Well-formed SD-WAN Hybrid Tunnel TLV: For Client Routes, the SD-WAN Hybrid Tunnel TLV and its Tunnel Egress Endpoint Sub-TLV are validated and handled according to [RFC9012]. MALFORMED and unrecognized Sub-TLVs are handled according to [RFC9012]. The SD-WAN Hybrid Tunnel TLV processes only the first instance of each Sub-TLV, except for the IPsec SA ID Sub-TLV. Multiple IPsec SA ID Sub-TLVs MAY be processed if their IPsec SA Identifiers are unique. If a subsequent IPsec SA ID Sub-TLV contains an identifier already advertised in an earlier instance, that Sub-TLV is ignored and not propagated.


1559   TLVs MUST be handled as specified in [RFC9012].  This document
1560   defines new Sub-TLVs for Tunnel Type 25 (SD-WAN-Hybrid), but does not
1561   alter the validation behavior established in RFC 9012.

<major> And it is stated in the same document that no such change is being
made. For client routes, please require the Tunnel Egress Endpoint sub-TLV
to be present, with Address Family 0 where the next hop is the endpoint -
which is what RFC 9012 already provides and costs almost nothing. Change Table
1's client-route column to "required" and delete footnote *2 as it applies
to that column. If the WG genuinely wants the omission to be legal for
client routes, that is an update to RFC 9012 and must be declared as one in
the header, the Abstract and the Introduction, with the interoperability
consequence spelled out - but I would not recommend that path for the saving
involved.

Two residual points on the underlay side, both belonging to issue (1) rather
than here. First, the document should say it is defining its own rule for a
SAFI outside RFC 9012's scope, rather than presenting it as RFC 9012
behaviour - lines 1344-1346 read "(Per [RFC9012], a Tunnel Egress SubTLV
exists with an AFI of 0 uses the packet Next Hop as the tunnel endpoint)",
which cites RFC 9012 for a case RFC 9012 excludes. Second, and worth putting
to the authors: Section 2.3 of RFC 9830 answered the analogous question by
declaring the Tunnel Egress Endpoint sub-TLV simply not applicable to its
SAFI. Is it actually meaningful for an SD-WAN underlay route? Section 2.5.2
step 2 says it "identifies a specific WAN interface or ... the remote SD-WAN
edge node at which the outer SD-WAN Hybrid Tunnel terminates" - but the
SD-WAN Node ID in the NLRI already identifies the node and the Extended Port
Attribute already carries the port addresses, so it is not obvious what the
sub-TLV adds. If it is genuinely redundant, marking it not-utilized for SAFI
74 would be cleaner than defaulting it.

[Linda] The changes that were made to address your earlier comments already clarify that Client Routes follow RFC 9012 unchanged, while SAFI 74 is outside the RFC 9012 applicability scope and has procedures defined by this document. Section 2.4.2 has also been revised accordingly. We can make the following changes to clean up the remaining:

Table 1: remove the footnote *2 from the Client Route column for the “Tunnel Egress EP”

Footnote *2
Old:
*2 - For SD-WAN Underlay Routes, if a Tunnel Egress Endpoint Sub-TLV is not included, it is treated as if a Tunnel Egress Endpoint Sub-TLV with AFI 0 were included. For Client Routes, [RFC9012] applies.

New:
*2 - For SD-WAN Underlay Routes, if a Tunnel Egress Endpoint Sub-TLV is not included, it is treated as if a Tunnel Egress Endpoint Sub-TLV with AFI 0 were included.

Section 2.4 Second bullet:

Old:
This outer tunnel is identified by the Tunnel Egress Endpoint Sub-TLV. Recall as stated earlier, if a Tunnel Egress Endpoint Sub-TLV does not exist, the SD-WAN Hybrid Tunnel processing treats it as a Tunnel Egress Endpoint Sub-TLV with AFI equal to zero.

New:
This outer tunnel is identified by the Tunnel Egress Endpoint Sub-TLV. When the BGP Next Hop is used as the tunnel endpoint, the Tunnel Egress Endpoint Sub-TLV is encoded with Address Family 0 as specified in [RFC9012].


352   Sub-TLV Support per NLRI type:  Summary table
353                     Table 1

390                            Figure 1: sub-TLV list

<nit> The block is introduced as "Sub-TLV Support per NLRI type: Summary
table / Table 1" (lines 352-353), referred to as "Table 1" throughout the
document (lines 350, 400), and captioned "Figure 1: sub-TLV list" (line
390). Please make it a numbered table with a table caption.
[Linda] changed the Table title to “Sub-TLV Support for Client and Underlay Routes”


362      Color                3   valid *1      not valid

384      *1 - validation per [RFC9012]. Color Extended Community
385      takes precedence over Color Sub-TLV.

405      4) Check if both the Color Sub-TLV and Extended Community for
406      Color exist, if so prefer the Extended Community for Color.

<major> Two distinct issues here:

(a) Wrong code point. Section 3.4.2 of RFC 9012 defines the Color sub-TLV as
Type Code 4. Code 3 is "IPsec Tunnel Authenticator (DEPRECATED)" in the IANA
BGP TEA Sub-TLVs registry.

(b) Wrong model. Section 8 of RFC 9012 does not put the Color sub-TLV and
the Color Extended Community in competition on the same route. The Color
sub-TLV appears on the tunnel route and the Color Extended Community on the
client route, and they are matched: a packet must not be sent through the
tunnel unless the client route carries a Color Extended Community matching
one of the tunnel route's Color sub-TLVs. There is no precedence rule in RFC
9012, and inventing one in a table footnote and a numbered validation step
is a third, incompatible mechanism alongside the document's own SD-WAN-Color
field (Section 2.2.1) and the Color Extended Community matching described in
Sections 2.4.1, 2.4.3 and 3.1.

Please correct the code to 4. Then decide on one colour mechanism and describe it
once: my reading of the intent is that the SD-WAN-Color in the underlay NLRI
is matched against the Color Extended Community on the client route, in
which case the RFC 9012 Color sub-TLV is not used at all and should be
marked "not valid" for both columns, with footnote *1 and Section 2.1.1 step
4 deleted.

[Linda] The intended color mechanism in this document is not the RFC 9012 Color Sub-TLV. Client Routes carry the Color Extended Community, while SD-WAN Underlay Routes carry the SD-WAN-Color field in the SAFI-74 NLRI, and the receiving node correlates those values as described in Sections 2.4.1, 2.4.3, and 3.1.
Section 2.1.1 has already been revised and no longer contains the procedure that preferred the Color Extended Community over the Color Sub-TLV. We will correct the Color Sub-TLV code point to 4, mark it as not valid for both Client Routes and SD-WAN Underlay Routes, delete the obsolete Table 1 footnote, and add the following short clarification of the color mechanism used by this document.:

The Color Sub-TLV defined in [RFC9012] is not used by the SD-WAN procedures defined in this document. Client Routes carry the Color Extended Community, while SD-WAN Underlay Routes carry the SD-WAN-Color field in the SAFI-74 NLRI. The receiving BGP speaker correlates these values as described in Sections 2.4.1, 2.4.3, and 3.1.


378      Underlay Type       66   not valid     valid

1194 2.3.6.1.  Extended Port Sub-Sub-TLV
1196   One Extended Sub-Sub-TLVs is specified in this document: Underlay
1197   Network Type Sub-Sub-TLV.
1204   multiple WAN ports are available.  The Underlay Network Type Sub-Sub-
1205   TLV is only valid for the Tunnel SD-WAN Hybrid Tunnel TLV within the
1206   Extended Port Attribute Sub-TLV.
1210   66 (IANA Assigned).

1864       66  Underlay Type                  This document  2.3.6.1

<major> Table 1 lists 66 as a TEA sub-TLV valid
for underlay routes. Section 6.3 registers 66 in the BGP TEA Sub-TLVs registry.
Section 2.3.6.1 defines it as a sub-sub-TLV that "is only valid ... within the
Extended Port Attribute Sub-TLV". These cannot all be true. As it stands, an
implementation following Table 1 will accept type 66 at sub-TLV level, where
the document gives it no meaning.

Consequently, the document defines a new sub-sub-TLV namespace - the
Extended Sub-Sub-TLV field of sub-TLV 65 - and requests no registry for it,
so no second sub-sub-TLV can ever be defined. Section 2.3.6.1's own heading
("Extended Port Sub-Sub-TLV") and its "One Extended Sub-Sub-TLVs is
specified in this document" both signal that more are expected. Note this is
also how the value got its name in IANA: the registry currently reads "66 |
Underlay ISP Properties | draft-ietf-idr-sdwan-edge-discovery-04" in the
sub-TLV registry - see the comment at line 1842.

Please decide which level it lives at. If sub-sub-TLV, which the encoding
and Section 2.3.6.1 both indicate: remove 66 from Table 1 and from Section
6.3, ask IANA to return code point 66 in the sub-TLV registry, and create a
new "SD-WAN Extended Port Sub-Sub-TLV Types" registry with a stated policy
and 1 = Underlay Network Type as the initial entry. I think this is the
intent?

But if not and, if sub-TLV: move Section 2.3.6.1 out to its own Section 2.3.7,
give it its own encoding independent of the Extended Port Attribute, and
correct Section 2.3.6's length formula (see the comment at line 1065) since
the sub-sub-TLV would no longer be inside it.

[Linda] The intended encoding is for Underlay Network Type to be a Sub-Sub-TLV carried within the Extended Port Attribute Sub-TLV, not a top-level Tunnel Encapsulation Attribute Sub-TLV.
We will remove value 66 from Table 1 and from the Tunnel Encapsulation Attribute Sub-TLV registry request in Section 6.3, request that the existing value 66 assignment in that registry be returned to the unassigned pool, and create a separate registry for Extended Port Sub-Sub-TLV Types. The initial assignment in that registry will be value 1 for Underlay Network Type.


448   connection.  Each BGP UPDATE message with a SD-WAN Underlay NLRI MUST
449   contains a Tunnel Encapsulation Attribute with a SD-WAN Hybrid Tunnel
450   TLV.  If an SD-WAN Underlay NLRI is received without a Tunnel
451   Encapsulation Attribute with a SD-WAN Hybrid tunnel TLV, the NLRI is
452   treated as "Treat-as-withdraw".

1596   The SD-WAN NLRI (AFI=1/SAFI=74) MUST be paired with Tunnel
1597   Encapsulation attribute with a SD-WAN Hybrid tunnel TLV, If the SD-
1598   WAN NLRI exist in an BGP UPDATE without a Tunnel Encapsulation
1599   Attribute with a SD-WAN Hybrid tunnel TLV, the NLRI is considered
1600   malformed and Treat-as-withdraw approach (per RFC7606).

<major> Issues with error handing treatment

(a) The granularity of treat-as-withdraw is incorrect. The TEA is a
path attribute, so it applies to every NLRI carried in the MP_REACH_NLRI of
that UPDATE. Its absence is therefore a property of the whole message, not
of any one NLRI, and every SD-WAN SAFI NLRI in that UPDATE is affected. As
written - "the NLRI is treated as" - the text reads as though one NLRI could
be withdrawn while others in the same message survive, which cannot arise
from this condition. The same wording problem appears at Section 2.6.3.
Please state the scope explicitly and give the reason: where the required
TEA with an SD-WAN Hybrid Tunnel TLV is absent, all SD-WAN SAFI NLRIs in
that UPDATE are treated-as-withdraw, because the attribute applies to all
of them. One statement, in one place, with Sections 2.2 and 2.6.3 not both
carrying it.
[Linda] Agree. The Tunnel Encapsulation Attribute is a path attribute and therefore applies to all SD-WAN SAFI NLRIs carried in the UPDATE. The current wording incorrectly refers to a single NLRI and repeats the same rule in Sections 2.2 and 2.6.3.
We will keep the normative error-handling rule in Section 2.6.3, explicitly state that all SD-WAN SAFI NLRIs in the affected UPDATE are treated-as-withdraw when the required Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV is absent, and change Section 2.2 to reference Section 2.6.3.

Here are the wording changes:
Section 2.2
Old:
Each BGP UPDATE containing an SD-WAN Underlay Route MUST include a Tunnel Encapsulation Attribute with an SD-WAN Hybrid Tunnel TLV. If an SD-WAN Underlay Route is received without the required Tunnel Encapsulation Attribute and SD-WAN Hybrid Tunnel TLV, the route MUST be handled as Treat-as-withdraw as specified in Section 2.6.3.

New:
Each BGP UPDATE containing SD-WAN Underlay Routes MUST include a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV. Error handling when this required attribute is absent is specified in Section 2.6.3.

Section 2.6.3
Old:
The SD-WAN NLRI (AFI/SAFI=1/74 or 2/74) MUST be paired with a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV. If the SD-WAN NLRI exists in a BGP UPDATE without a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV, the NLRI is considered malformed and the Treat-as-withdraw approach specified in [RFC7606] MUST be used.

New:
A BGP UPDATE carrying SD-WAN SAFI NLRIs (AFI/SAFI 1/74 or 2/74) MUST include a Tunnel Encapsulation Attribute containing an SD-WAN Hybrid Tunnel TLV. Because the Tunnel Encapsulation Attribute applies to all NLRIs carried in the UPDATE, if the required attribute or SD-WAN Hybrid Tunnel TLV is absent, all SD-WAN SAFI NLRIs in that UPDATE MUST be treated-as-withdraw according to [RFC7606].


546   - Route Type Validation:  The Route Type field MUST be equal to 1.
547      Any other value is not supported and the NLRI MUST be ignored, but
548      distributed to other BGP peers.

(b) Ignore-but-propagate for unrecognised route types, and the wrong
term for it. Section 5.4 of RFC 7606 sets the default for typed NLRI: "A BGP
speaker advertising support for such a typed address family MUST handle
routes with unrecognized NLRI types within that address family by discarding
them, unless the relevant specification for that address family specifies
otherwise." Overriding it is permitted, but the document must say it is
doing so, and must then answer what the override raises: on what basis a
speaker re-advertises an NLRI it cannot parse; how the Route Reflector
applies the Section 3 authorisation check to it; whether it occupies an
Adj-RIB-In entry; and what withdraws it. Note also that this rule and
Section 2.5.2 step 4's "A MALFORMED NLRI MUST be discarded" sit in different
sections with no cross-reference and no stated ordering against the Length
check at lines 550-552, which cannot apply to an unknown route type.

On terminology, the correct BGP term is propagation, not distribution:
s/distributed to other BGP peers/propagated to other BGP peers here, and the
same at line 1585. This is not merely stylistic - "distribution" invites the
reading that some component other than ordinary BGP propagation is involved,
which is precisely the ambiguity the SD-WAN SAFI does not need more of.

[Linda] This issue has already been addressed in the changes addressing your earlier comments. An SD-WAN NLRI with an unrecognized Route Type is now discarded and MUST NOT be propagated, following Section 5.4 of RFC 7606. The earlier “ignore but distribute” behavior has been removed, and “propagated” is now used consistently.
We can add the following clarification that the Length and subsequent field validation procedures apply only after the Route Type has been recognized.
Section 2.2.2
Old:
Route Type Validation: The Route Type field MUST be equal to 1. An SD-WAN NLRI with an unrecognized Route Type MUST be discarded and MUST NOT be propagated, as specified for typed NLRIs in Section 5.4 of [RFC7606].
Length Field Validation: The Length field MUST contain a value of either 12 or 24 octets, as defined in Section 2.2.1.

New:
Route Type Validation: The Route Type field MUST be equal to 1. An SD-WAN NLRI with an unrecognized Route Type MUST be discarded and MUST NOT be propagated, as specified for typed NLRIs in Section 5.4 of [RFC7606]. The remaining validation steps in this section apply only to recognized Route Types.
Length Field Validation: For Route Type 1, the Length field MUST contain a value of either 12 or 24 octets, as defined in Section 2.2.1.


509   Length:  The value of the Length field for Route-Type 1 MUST be
510      either 12 octets (when the SD-WAN Node ID is an IPv4 address) or
511      24 octets (when the SD-WAN Node ID is an IPv6 address).  Any other
512      value is invalid, and the NLRI MUST be treated as malformed and
513      discarded.

(c) Per-NLRI discard is workable here because the Length field lets
a parser skip the malformed NLRI and continue - but the document should say
that is why it is workable, and say what happens when the Length field
itself runs past the end of the MP_REACH_NLRI attribute, at which point
parsing genuinely fails and RFC 7606's AFI/SAFI-disable or session-reset
applies.

Please consolidate all three of the above into one error-handling section,
state explicitly which RFC 7606 disposition applies to each failure mode and
at what scope, and state that (b)'s ignore-but-propagate is a deliberate
override of Section 5.4 of RFC 7606, with the reasoning. Section 5 of RFC
9830 is the model and is short enough to adapt almost directly: it defines
the syntactic validation required, then an escalation ladder from per-NLRI
treat-as-withdraw (where the malformed NLRI can be skipped) to AFI/SAFI
disable to session reset (where the UPDATE cannot be parsed at all). Section
5 of RFC 9830 also separates BGP-level validation from validation that is
not BGP's business, which is the distinction this document most needs for
the IPsec parameters - see issue (2).

[Linda] Agree. The changes in resolving your earlier comments already removed the earlier ignore-but-propagate behavior for unrecognized Route Types and now follows Section 5.4 of RFC 7606: an NLRI with an unrecognized Route Type is discarded and MUST NOT be propagated.
The current revision also consolidates the SD-WAN NLRI error handling in Section 2.6.2. We will further clarify the error-handling scope for Length failures. If the NLRI Length value is invalid but still allows the malformed NLRI boundary to be determined, the affected NLRI is handled as treat-as-withdraw. If the Length encoding extends beyond the remaining MP_REACH_NLRI data so that the NLRI boundary cannot be reliably determined, AFI/SAFI disable or session reset is applied according to RFC 7606. This follows the error-handling model used in RFC 9830.

Section 2.2.1 — Length definition
Old:
Length: The value of the Length field for Route-Type 1 MUST be either 12 octets (when the SD-WAN Node ID is an IPv4 address) or 24 octets (when the SD-WAN Node ID is an IPv6 address). Any other value is invalid, and the NLRI MUST be treated as malformed and discarded.

New:
Length: The value of the Length field for Route-Type 1 MUST be either 12 octets (when the SD-WAN Node ID is an IPv4 address) or 24 octets (when the SD-WAN Node ID is an IPv6 address). Any other value is invalid. Error handling for an invalid Length field is specified in Section 2.6.2.


456   Section 2.3.6) or IPsec information (see Section 2.3).  The IPsec
457   information sub-TLVs include: IPsec SA ID, IPsec SA Nonce, IPsec
458   Public Key, IPsec SA Proposal, and Simplified IPsec SA.

1119      identifies the encapsulation protocol used within the IPsec
1120      payload when IPsec SA Sub-TLVs (IPsec SA ID, IPsec SA Nonce, IPsec
1121      Public Key, IPsec SA Proposal, or Simplified IPsec SA) are present

1563   For SD-WAN client routes with a Tunnel Encapsulation Attribute with a
1564   SD-WAN Hybrid Tunnel type TLV, the IPsec Sub-TLVs (IPsec SA ID, IPsec
1565   nonce, IPsec Public Key, IPsec Proposal, and Simplified IPsec SA) are
1566   meaningful, but MAY be rarely sent.

<major> Also at lines 1134-1135 and 1570. No sub-TLV named "IPsec SA Nonce"
is defined; sub-TLV 67 is the IPsec SA Rekey Counter. This seems a leftover
from an earlier revision, and it is the name still sitting in the IANA
registry for value 67 - so the two need fixing together. Section 2.6.1 also
drops the "SA" from "IPsec SA Proposal" and Section 6.3 drops it from "Simplified
IPsec SA". Please use the defined names - IPsec SA ID, IPsec SA Rekey Counter,
IPsec Public Key, IPsec SA Proposal, Simplified IPsec SA - in all five places
and in Section 6.3, and ask IANA to rename value 67 accordingly (see the comment
at line 1842).
[Linda] The changes made in addressing your earlier comments already identify Sub-TLV 67 as “IPsec SA Rekey Counter” in Section 6.3, but several occurrences of the old “IPsec SA Nonce” name and shortened Sub-TLV names remain.


584   To support key rotation (e.g., updating IPsec keys or parameters),
585   the SD-WAN NLRI (identified by Port-Local-ID, SD-WAN-Color, and SD-
586   WAN Node ID) can be re-advertised via a BGP UPDATE message containing
587   updated IPsec SA information.  This mechanism enables rapid
588   distribution of new keys without requiring separate key negotiation
589   protocols.

<major> The claim of "rapid distribution" is not supported, and the
mechanism has challenges that need stating.

Implicit withdraw destroys the old SA before the new one is usable.
Re-advertising the same NLRI replaces the previous path attributes. IPsec
rekeying requires an overlap window where both the old and the new SA are
installed, or traffic is dropped for the duration. Nothing in the document
creates that overlap - the IPsec SA ID Sub-TLV can carry multiple SPIs
(lines 601-607), which is the natural place to build make-before-break, but
no procedure uses it that way.

BGP gives no delivery or ordering guarantee for successive UPDATEs. An RR
applying MRAI, or an implementation coalescing updates, may collapse a rapid
sequence of rekeys and deliver only the last - or deliver them out of order
to different peers, so different edges hold different generations of the
same SA simultaneously. The Rekey Counter exists to detect this and no
procedure consumes it - see issue (7)(d).

The churn is proportional to (edges x ports x peers x rekey rate) and lands
on the control plane. A 5000-site SD-WAN with 3 WAN ports rekeying hourly
generates 15000 UPDATEs per hour through the RR at steady state, each
carrying key material, each reflected to every authorised peer. There is no
guidance on a minimum rekey interval, no MRAI or damping recommendation, and
no statement of the relationship between rekey rate and BGP convergence. I
am not asserting the design is unworkable, but I would want this addressed
before IETF Last Call.

Framed by the boundary in issue (2), the fix splits at the BGP/IPsec line
rather than being specified end to end. On BGP's side, which this document
must specify: what the Rekey Counter means on the wire and who consumes it.
It is a field in a BGP sub-TLV, so the document must either state a
BGP-visible comparison rule - an advertisement whose Rekey Counter is not
greater than the stored value for that SA is stale and is not passed on to
the SD-WAN tunnel manager - or state that the field is opaque to BGP and
handed over intact, in which case say so and delete the anti-replay claim at
line 717. It cannot be silent, which is the current state. Also on BGP's
side: the churn. An Operational Considerations subsection should give a
recommended minimum rekey interval as a function of deployment scale and
state the relationship to MRAI and RR update generation. On the SD-WAN
tunnel manager's side, which this document should hand over and not specify:
the SA lifecycle - the make-before-break overlap, when the old SA is torn
down, what happens if the new parameters do not work. The encoding already
supports overlap, since the IPsec SA ID Sub-TLV can carry multiple SPIs
(lines 601-607); the document should say that carrying both the old and the
new SPI is how an overlap is signalled, and leave the management of the
window to the SD-WAN tunnel manager.

<major> Separately, and per issue (6): "rapid" is unquantified and is
contradicted by the document's own delivery characteristics, as above.
"Without requiring separate key negotiation protocols" asserts an advantage
over IKEv2 as though it were a bare fact. Are you sure to project BGP as
an alternative to IKE to the SEC folks?

[Linda] The BGP/IPsec responsibility boundary has already been clarified in the changes addressing your earlier comments: BGP carries the IPsec-related parameters and validates their encoding and syntax, while IPsec SA state management, rekeying, and packet protection are performed by the IPsec implementation.


603   This enables advertisement of SA updates, key rotations, or
604   operational state changes without resending full SA parameter sets,
605   thereby significantly reducing the size of BGP UPDATE messages and
606   allowing pairwise IPsec rekeying to proceed independently for each
607   SA.

<major> Per issue (6): "significantly" is unquantified and measured against
nothing. The mechanical part of the sentence is accurate and should stay.
Perhaps:

      This enables advertisement of SA updates, key rotations, or
      operational state changes without resending full SA parameter
      sets, and allows pairwise IPsec rekeying to proceed independently
      for each SA.
[Linda] We will remove the unquantified “significantly reducing” claim and keep the mechanical description of the behavior.


617      |IPsec SA ID Sub|   Length      |  Reserved                     |
667       |SA-RekeyCounter|   Length      |  Reserved                     |
746       |IPsec-PublicKey|   Length      |  Reserved                     |
815   |  SA Proposal  |   Length      |       Reserved (16 bits)      |
907       |Sub-TLV type   |    Length     |             Reserved          |
1044      |Type (65)      | Length        |Flags          |I|O|R|R|R|R|R|R|
1216       | UnderlayType  |      Length   |      Reserved                 |

1208   Underlay Network Type.
1210   66 (IANA Assigned).

<minor> The way this document presents its TLV and sub-TLV encodings - in
both the figures and the accompanying field descriptions - departs from the
convention used across IDR documents. RFC 9830 is a good reference for the
house style, and following it would make the encodings easier to review and
easier to implement. Please take care of the following to get some consistency
and to improve clarity and readability.

(a) Bit rulers are inconsistent and often incomplete. Please use the full
two-line ruler in every figure.

(b) The Type field is labelled with the sub-TLV's name instead of "Type" -
seven different labels appear in the type-field position across sub-TLVs.

(c) The field descriptions have no common template. Each sub-TLV describes
its own type field differently

(d) Field widths are given in bits where octets are conventional, and the
two units are mixed within single descriptions - for instance the Rekey
Counter at line 709 is "64 bits" while the field beside it at line 693 is
described in octets. TLV and sub-TLV field widths are normally given in
octets, with bits reserved for flags and sub-octet fields.

Please adopt one template for all seven sub-TLVs and the sub-sub-TLV, suggest
following RFC 9830's presentation: and a "where:" list describing each
field in the order it appears, with widths in octets.

[Linda] We will make the encoding figures consistent by using the same two-line bit ruler, label the first octet uniformly as “Type”, and normalize the field descriptions to follow the same “where:” template. Field widths will be expressed in octets for whole-octet fields and in bits only for flags or sub-octet fields.


635      *  Length (8 bits): Specifies the total length in octets of the
636         value field (not including the Type and Length fields).  For
637         the IPsec SA ID Sub-Type, the Length field SHOULD be equal to 2
638         + 4 *(number of IPsec SA Identifier fields).

648   Sub-TLV Error Handling:  If the length value is invalid, (that is 2+
649      4*number of IPsec SA IDs), then the IPsec SA ID SubTLV is
650      Malformed.

<major> A length field cannot be a SHOULD - a receiver has no way to parse a
sub-TLV whose length is optionally correct, and there is no defined
behaviour for the case where it is not. The same applies to ID Length at
line 694. The error-handling sentence then says the opposite of what it
means: as written, "if the length value is invalid, (that is 2 + 4*number of
IPsec SA IDs)" defines the correct value as the invalid one. The
parenthetical needs to be the valid value with the test inverted. How about:

      The Length field MUST be equal to 2 + 4 x (number of IPsec SA
      Identifier fields). A sub-TLV whose Length field has any other
      value is malformed and is handled per [RFC9012].

Please apply the same treatment to ID Length in Section 2.3.2.
[Linda] Agree. The Length field and the ID Length field are part of the encoding and therefore need exact values, not SHOULD-level guidance. We will make both normative and simplify the malformed-length text so that the valid value is stated directly and any other value is treated as malformed according to RFC 9012.


640      *  Reserved: The Reserved field SHOULD be set to zero and ignored
641         upon receipt.  Received values MUST be propagated without
642         change.

<major> Two problems, raised here on the first Reserved field the document
defines and applying to every Reserved field and Reserved bit in the
document. There are several different formulations across them, varying
between SHOULD and MUST on setting to zero, between SHOULD, MUST and
unmarked on ignoring, and between carrying a propagation sentence and not.

(a) The normative keyword strength varies for no reason.

(b) "Received values MUST be propagated without change" contradicts "set to
zero on transmission". A speaker re-originating the sub-TLV cannot do both.
The sentence is also redundant: Section 13 of RFC 9012 already requires
unrecognised and disregarded sub-TLVs to be propagated intact, and the
TEA is transitive. Note also that the Reserved field in Section 2.3.1 is
given no explicit width, though Figure 4 and the length formula imply two
octets.

Please adopt one formulation and use it verbatim everywhere - "Reserved for
future use. MUST be set to zero on transmission and MUST be ignored on
receipt." - drop the propagation sentences, and state the width of every
Reserved field. This applies throughout the document: please check all
Reserved fields and Reserved bits for consistency rather than only the
instance quoted above.

[Linda] Agree. The Reserved fields and bits should use one consistent formulation throughout the document. We will use: “Reserved for future use. MUST be set to zero on transmission and MUST be ignored on receipt.”
We will remove the separate “propagated without change” sentences and explicitly state the width of each Reserved field or bit field. This is an editorial consistency change and does not alter the encoding semantics.


685      *  length (8 bits): Specifies the total length in octets of the
686         value field of the SubTLV.  The total length is variable with
687         the value equal to 18 plus Nonce Length.

693      *  ID Length (8 bits): indicates the length in octets of IPsec SA
694         Identifer.  This length SHOULD be 4 octets.
696      *  Nonce Length (16 bits): indicates the length, in octets, of the
697         Nonce Data.  The value MUST be a non-zero multiple of 4 (i.e.,
698         the Nonce Data length MUST be a multiple of 32 bits)[RFC7296].

709      *  Rekey Counter (64 bits): the number of key updates or rekeys
710         that have occurred.

720   Sub-TLV Error Handling:  The IPsec SA Rekey Counter Sub-TLV is
721      considered malformed under any of the following conditions:
723         The total Sub-TLV Length is less than the sum of ID Length,
724         Nonce Length, and 4 octets for the Rekey Counter.
726         The Nonce Length field is zero or not a multiple of 4.

<major> Four defects in this sub-TLV.

The length formula holds only for ID Length = 4. Counting from Figure 5:
Reserved 2 + ID Length 1 + Nonce Length 2 + I/Flags 1 + Rekey Counter 8 + SA
Identifier (ID Length) + Nonce Data (Nonce Length) = 14 + ID Length + Nonce
Length. That equals "18 plus Nonce Length" only when ID Length is 4 - which
the document explicitly declines to require (line 694, "SHOULD be 4 octets",
with Contextual Note 1 at lines 730-735 explaining that the SHOULD exists
precisely so Secure EVPN can use a longer identifier).

The malformed test uses 4 octets for a 64-bit field. The Rekey Counter is 8
octets, not 4. The test also omits Reserved, ID Length, Nonce Length and the
flags octet - 6 further octets - so a sub-TLV 10 octets shorter than it
should be passes the test.

The multiple-of-4 nonce rule is attributed to RFC 7296, which does not
contain it. Section 3.9 of RFC 7296 says: "The size of the Nonce Data MUST
be between 16 and 256 octets, inclusive." There is no multiple-of-4 or
multiple-of-32-bits requirement in Section 3.9 or in Section 2.10 ("Nonces
used in IKEv2 MUST be randomly chosen, MUST be at least 128 bits in size,
and MUST be at least half the key size of the negotiated pseudorandom
function (PRF)"). The document's own rule also fails to enforce the 16-octet
minimum that RFC 7296 does impose: a 4-octet nonce passes both stated tests.

Nonce Length is 16 bits inside a sub-TLV whose Length field is 8 bits, so a
conforming Nonce Length value can exceed what the sub-TLV can hold - see the
comment at line 929.

Please state the length as 14 + ID Length + Nonce Length; make ID Length a
MUST-be-4 unless the Secure EVPN case is actually in scope, in which case
allow a range and validate it (a SHOULD on a length field is not a workable
extensibility mechanism - the ID Length field itself already provides the
extensibility); correct the malformed test to Length != 14 + ID Length +
Nonce Length; replace the nonce rule with Section 3.9 of RFC 7296's actual
constraint (16-256 octets inclusive) further capped by the sub-TLV length;
and reduce Nonce Length to 8 bits, or move the sub-TLV to a two-octet-length
type per the comment at line 929.
[Linda]  Agree. We will correct the length calculation and nonce validation. As addressed in the preceding comment, ID Length will be required to be 4 octets.
The Sub-TLV Length is 14 + ID Length + Nonce Length, which with the required 4-octet ID is 18 + Nonce Length. The malformed-length check will use this exact relationship, and the Rekey Counter will be correctly accounted for as 8 octets.
We will also replace the incorrect multiple-of-4 nonce requirement with the RFC 7296 requirement. Because the Sub-TLV itself has an 8-bit Length field, this encoding further limits Nonce Length to 237 octets. The existing 16-bit Nonce Length field can therefore remain; values outside the permitted range are malformed.

913       | key1 length   |         Key 1                                 ~
915       | key2 length   |         Key 2                                 ~

971   key1 length (8 bits):  indicates the IPsec public key 1 length.
974   Public Key 1:  IPsec public key 1
976   key2 length (8 bits):  indicates the IPsec public key 2 length.
979   Public Key 2:  IPsec public key 2

<major> The figure calls them "Key 1"/"Key 2"; the field descriptions call
them "Public Key 1"/"Public Key 2"; the field titles call them "key1
length"/"key2 length" and "IPsec public key 1 length". Nothing states what
algorithm or curve/group the key belongs to, or how a receiver determines
that - the sub-TLV has no Diffie-Hellman Group field, unlike sub-TLV 68, and
the Transform/AH/ESP fields describe the SA's algorithms, not the key's.
Nothing states what the encoding is (raw point, DER SubjectPublicKeyInfo,
the RFC 7296 Key Exchange Data format). Nothing states why there are two, or
which is which - inbound/outbound, encryption/integrity, initiator/responder
are all plausible readings and produce different SAs.

Nor is it clear that they are public keys at all. Section 2.3.5 introduces
this sub-TLV for "deployments where full transform negotiation (e.g., via
IKEv2) is not supported or not necessary" with nodes "provisioned ... with a
common set of agreed security profiles". A pre-provisioned profile plus two
keys and a nonce, with no Diffie-Hellman group and no key-agreement step,
reads much more like symmetric keying material than like public keys - and
Section 3.2 confirms there is no negotiation: "The C-PE devices do not
attempt to negotiate IPsec SA parameters or transform sets with remote
peers. Instead, the configurations must match as advertised."

If they are symmetric keys, this sub-TLV distributes SA keys in a transitive
BGP path attribute, through an RR, on a session that Section 5 says may run
over plain TCP in a walled garden. That is a serious exposure and it is not
analysed anywhere - see issue (7). If they are public keys, the document
still never states how a receiver binds a key to an identity: anyone who can
inject a route with the right Node ID substitutes their own key.

Please state plainly what Key 1 and Key 2 are, with an algorithm identifier
field, an encoding reference, and an explicit statement of each key's role.
If they are symmetric keys, say so and make transport confidentiality a MUST
wherever this sub-TLV is used, with the reasoning in Section 5. If they are
public keys, add the group/algorithm identifier and specify the identity
binding.
[Linda] The intent is for these fields to carry the multiple pieces of keying material needed by the IPsec SA, not to define a separate public-key exchange mechanism.
We will clarify the role of each key, align the field names in the figure and text, and specify that their interpretation is determined by the IPsec transform(s) selected for the SA. We will also remove the current “Public Key” terminology where it is misleading.
The Simplified IPsec SA Sub-TLV is intended for centrally controlled deployments in which the participating nodes are provisioned with the same security profile, including the algorithms and keying method. It therefore carries the keying material needed for the configured SA rather than negotiating a key-exchange algorithm in BGP. The exact encoding and role of each key will be stated explicitly so that the receiver can unambiguously associate the advertised keying material with the configured IPsec transforms.


929   Length (8 bits):  the length of Sub-TLV in octets (based on key
930      length).  Length is variable, and calculated by 17 + key1 length +
931      key2 length + nonce length.

971   key1 length (8 bits):  indicates the IPsec public key 1 length.  The
972      length has a valid range of 32 octets to 512 octets [RFC8247]
974   Public Key 1:  IPsec public key 1
976   key2 length (8 bits):  indicates the IPsec public key 2 length.  The
977      length has a valid range of 32 octets to 512 octets [RFC8247]

<major> All seven sub-TLVs defined in this document use type codes 64-70, so
per RFC 9012 each has a one-octet Length field and a maximum value field of
255 octets. Three of them are specified with value ranges that do not fit,
and this one is the clearest case: the key length fields are 8 bits but are
given a range up to 512 octets, which an 8-bit field cannot express; and the
sub-TLV Length is 8 bits, so 17 + key1 + key2 + nonce <= 255 caps the two
keys plus nonce at 238 octets combined.
[Linda] The preceding comment is being addressed by clarifying the semantics and roles of Key 1 and Key 2, but the current key-length ranges also exceed what the encoding can represent.
Because the Simplified IPsec SA Sub-TLV uses the one-octet Length field defined by RFC 9012, its value cannot exceed 255 octets. We will remove the current 32–512-octet key-length range and explicitly require that the encoded Key 1, Key 2, and Nonce lengths fit within the Sub-TLV Length. The actual key lengths are determined by the configured IPsec algorithms/security profile.



764      length (8 bits): Specifies the total length in octets of SubTLV
765      value field.  The total length is variable with the length being
766      10 + the Key Exchange Data length.

<major> Same class of problem in the IPsec Public Key Sub-TLV, where Length
= 10 + Key Exchange Data. Section 3.4 of RFC 7296: "The length of the
Diffie-Hellman public value for MODP groups MUST be equal to the length of
the prime modulus over which the exponentiation was performed." Group 14
(2048-bit MODP) therefore has a 256-octet public value; 256 + 10 = 266 >
255. Group 14 is the only DH group RFC 8247 marks MUST for IKEv2 (Section
2.4 of RFC 8247). So the sub-TLV cannot carry the mandatory-to-implement
group. Group 5 (192 octets) fits at 202; ECP groups 19, 20 and 21 (64, 96
and 132 octets) fit. The document does not restrict the usable groups, so an
implementation cannot know which the peer will send.

The third case is that the Length field is 8 bits while Nonce Length is 16
bits in the IPsec SA Rekey Counter Sub-TLV (see the comment at line 685), so
the nonce length field can express values the containing sub-TLV cannot
hold. This 'plain as daylight' inconsistency is what go me going down into
the IPsec and IKE rabbit hole to find these whole set of issues!

My preferred fix is to move these sub-TLVs into the 128-255 type range,
which gives a two-octet Length. That requires returning 64-70 and requesting
new codepoints (128-191 is Standards Action, 192-252 is FCFS) - worth doing
immediately. The alternative, if the codepoints are to be kept:
restrict the permitted DH groups to those whose public value fits in 245
octets, state that restriction normatively, correct the key-length fields to
16 bits, and state the real ceiling on key material - I don't think this
option will survive SEC reviews. Either way, please state explicitly for
each sub-TLV what happens when the material does not fit.
[Linda] Agree that the one-octet Sub-TLV Length limits the key-exchange data that can be carried. This has been partially addressed in the current revision: Section 2.3.3 now states the 255-octet Sub-TLV limit, recommends smaller ECP groups, and requires public values that do not fit to be distributed by another mechanism. The Rekey Counter nonce-length issue is also being addressed separately by bounding the permitted Nonce Length to the enclosing Sub-TLV size.
We will make the Public Key Sub-TLV restriction explicit: only key-exchange groups whose encoded public value fits within the available 245 octets may be carried in this Sub-TLV. A sender MUST NOT encode a larger public value in this Sub-TLV; another key-distribution mechanism must be used instead.



953   AH algorithms (8 bits):  Specifies the AH authentication algorithm to
954      be used.  The values are defined in [RFC4835] and its updates
955      (e.g., [RFC8221]).

963   ESP algorithms (8 bits):  Specifies the ESP encryption algorithm, as
964      defined in [RFC4835], [RFC8221], and their updates.

<major> RFC 4835, RFC 7321 and RFC 8221 do not define numeric values for
these algorithms. They are implementation-requirements documents: they list
algorithms by name with a requirement level (MUST / SHOULD / SHOULD NOT /
MUST NOT) and nothing else. Section 9 of RFC 8221 states "This document does
not require any IANA actions."; Section 1.3 of RFC 8221 states "The
algorithms considered here are listed by IANA as part of the IKEv2
parameters." The numeric code points live in the IANA IKEv2 "Transform Type
1 - Encryption Algorithm Transform IDs" and "Transform Type 3 - Integrity
Algorithm Transform IDs" registries - which are 16-bit spaces, not 8-bit. So
as written there is no way for two implementations to agree on what value 12
in the ESP algorithms field means. Separately, RFC 4835 is obsolete
(obsoleted by RFC 7321, itself obsoleted by RFC 8221) and should not be
cited at all.

Please redefine both fields as 16-bit values from the IANA IKEv2 Transform
Type 3 and Transform Type 1 registries respectively, cite those registries,
and make RFC 7296 (already normative) the reference. Drop RFC 4835 entirely
and reduce RFC 8221 to an informative pointer for algorithm selection
guidance. Widening these fields also forces a re-count of the Simplified
IPsec SA length formula at line 929 - please do both in one pass. Note that
this field pair also duplicates what the IPsec SA Proposal Sub-TLV (69)
already carries properly via Transform Type / Transform ID; consider whether
the Simplified sub-TLV needs them at all (see the comment at line 1117).
[Linda] We will change the AH and ESP algorithm fields to 16-bit values and define them using the IANA IKEv2 Transform Type 3 (Integrity Algorithm) and Transform Type 1 (Encryption Algorithm) registries, respectively, with RFC 7296 as the protocol reference.
RFC 4835 will be removed. RFC 8221 may remain as an informative reference for algorithm-selection guidance.
The widening of these two fields will also be reflected in the Simplified IPsec SA Sub-TLV encoding and Length calculation. The fields are retained because this compact Sub-TLV explicitly identifies the configured algorithms used by the SA, whereas the more general IPsec SA Proposal Sub-TLV provides the flexible transform representation.


981   nonce-length (8 bits):  indicates the Nonce key length.  Per
982      [RFC7296], the minimum length for nonce is 16 octets.  [RFC7296]
983      doesn't specify the maximum length for nonce.  Therefore, the
984      maxmimum length for nonce MUST be small enough so that the entire
985      length of the BGP UPDATE is less than the BGP UPDATE maximum.

<major> Section 3.9 of RFC 7296 specifies both bounds: "The size of the
Nonce Data MUST be between 16 and 256 octets, inclusive." The minimum stated
here is right; the maximum claim is wrong; and the substitute rule that
follows from it is not implementable as a validation test - a receiver
parsing one sub-TLV cannot evaluate "the entire length of the BGP UPDATE is
less than the BGP UPDATE maximum" as a property of this field, and a sender
that has already built the UPDATE has a much tighter constraint anyway (the
sub-TLV's own 8-bit length, per the comment at line 929). Note the
inconsistency with the Rekey Counter sub-TLV at line 685: two sub-TLVs in
the same document carry a nonce under two different, mutually incompatible
length rules (multiple of 4, no maximum; versus 16 octets minimum, no
maximum), neither of which matches RFC 7296. In both places, please state:
"The Nonce Data length MUST be between 16 and 256 octets inclusive
[RFC7296], and MUST NOT exceed the space available in the enclosing
sub-TLV." Delete the BGP-UPDATE-maximum sentence.
[Linda] Agree. The current text incorrectly states that RFC 7296 does not define a maximum nonce length. Section 3.9 of RFC 7296 defines the Nonce Data length as 16 through 256 octets inclusive.
We will use the same rule consistently in both nonce-carrying Sub-TLVs and also require that the nonce fit within the enclosing Sub-TLV. The current BGP UPDATE maximum-size sentence will be removed.


1028   Unlike pairwise NAT traversal mechanisms such as IKEv2 [RFC7296],
1029   which require peers to dynamically discover NAT properties during
1030   tunnel setup, the BGP-controlled SD-WAN architecture enables each SD-
1031   WAN edge node to proactively advertise its NAT properties to all
1032   peers through BGP signaling.  This approach simplifies NAT traversal
1033   in large-scale SD-WAN deployments where each edge node may need to
1034   establish tunnels with many peers.

<major> Per issue (6): this is the document's only direct comparison with an
alternative and it carries no analysis - no scaling figures, no statement of
what "simplifies" means or what it costs, and no acknowledgement of what
IKEv2 provides that this mechanism does not. Please delete both sentences
and substitute:

      Each SD-WAN edge node advertises the NAT properties of its WAN
      ports to its peers through BGP signalling, independently of and in
      advance of the establishment of any tunnel. Section
      [APPLICABILITY].2 describes the relationship between the
      mechanisms in this document and alternative mechanisms for
      establishing IPsec security associations.

This passage seems to be the document's stated motivation for the design, and is
the text issue (10)'s question is about.
[Linda] The change made in addressing your earlier comments now state that an SD-WAN edge can advertise its NAT properties through the RR to authorized peers before individual tunnels are established, avoiding repeated discovery of the same NAT-related information during establishment of each SD-WAN tunnel. We will keep the comparison limited to that concrete behavior and avoid broader claims that the mechanism “simplifies” NAT traversal.


1065   *  Length: the length of the value field in octets excluding the Type
1066      and the Length fields.  If IPv4, the length is 32 (8 header, 32
1067      address, 8 for 1 Sub-Sub-TLV).  If IPv6, the length is 64 (8
1068      header, 48 addresses, 8 for 1 subSubTLV).

<major> The IPv4 sum does not add up on its own terms: 8 + 32 + 8 = 48, not
32. The units are also inconsistent - "32 address" is bits where the
surrounding numbers are octets. Counting the fields from Figure 8 (lines
1042-1059), the value field is Flags 2 + NAT Type 1 + Encap-Type 1 + Trans
networkID 1 + RD ID 1 + Local IP 4 + Local Port 4 + Public IP 4 + Public
Port 4 + Sub-Sub-TLV 8 = 30 octets for IPv4, and 2+4+16+4+16+4+8 = 54 octets
for IPv6. Neither 32 nor 64 is reachable from the figure.
[Linda] We will recalculate the value-field length directly from the fields in Figure 8 and express all whole-field sizes consistently in octets. For the current encoding, the fixed value length is 22 octets for IPv4 and 46 octets for IPv6, plus the length of any included Sub-Sub-TLVs.


1159   *  Local IP: The local (or private) IP address of the WAN port.  If
1160      the Sub-TLV Length field is 32, the Local IP is a 32 bit IPv4
1161      address.  If the Sub-TLV Length field is 64, the Local IP is a 64
1162      bit IPv6 address.  This MUST be a valid IP address.

1167   *  Public IP: The IP address after the NAT.  If NAT is not used, this
1168      field is set to all-zeros.  If not, this is a valid IP addres.  If
1169      the Sub-TLV Length field is 32, the Local IP is a 32 bit IPv4
1170      address.  If the Sub-TLV Length field is 64, the Local IP is a 64
1171      bit IPv6 address.

<major> An IPv6 address is 128 bits, not 64, in both places; and the Public
IP bullet describes the Local IP.

Two further structural problems in the same field. First, the length is
derived from a fixed assumption of exactly one 8-octet sub-sub-TLV, while
Section 2.3.6.1 says the sub-sub-TLV is optional and the field is named
"Extended Sub-Sub-TLV" (singular in the figure, plural in the prose at line
1196) - so a sub-TLV with no sub-sub-TLV, or two, has no defined length.
Second, the address family is signalled twice and inconsistently: by the I
and O flag bits (lines 1076-1085) and by the Length field, with no statement
of what happens when they disagree, and with the flags describing an
inner/outer split while the Length rule assumes both addresses are the same
family.
[Linda] We will correct the IPv6 address width to 128 bits and fix the Public IP description. We will also make the Extended Port Attribute length depend on the actual address families and the actual number/length of included Sub-Sub-TLVs, rather than fixed 32/64 values. The I and O bits will be the authoritative indicators of the Local and Public IP address families; the Length field will only describe the encoded size, and inconsistent encodings will be treated as malformed.


1082      -  O bit (Outer address scheme):
1084         o  If set to 0, indicate the inner (private) address is IPv4.
1086         o  If set to 1, indicates the inner address is IPv6.

<major> The O bit description is a copy of the I bit description - see the
next comment, where this and the undefined "inner"/"outer" terminology are
treated in full.

Please recompute both lengths from the figure and state them as a formula
over the present fields rather than two constants: Length = 14 + (4 or 16
for Local IP) + (4 or 16 for Public IP) + sum of sub-sub-TLV lengths,
adjusting for the port field width per the comment at line 1164. Make the I
and O flags the sole address-family indicators, delete the
length-implies-family rules, and specify the malformed condition when the
length is inconsistent with the flags. And fix the O bit text to say "outer
(public) address".
[Linda] We will correct the O-bit text to refer to the outer (public) address, make the I and O bits the sole indicators of the Local and Public IP address families, and remove the current Length-based address-family inference. The Length will be defined from the actual encoded fields and included Sub-Sub-TLVs, and any inconsistency between the flags and encoded length will make the Sub-TLV malformed.


1070   *  Flags (16 bits):
1072      -  Flags field starts with 8 bits which are reserved for future
1073         use.  MUST be set to 0, and ignored upon reception.
1075      -  I bit (C-PE port address or Inner address scheme):
1077         o  If set to 0, indicate the inner (private) address is IPv4.
1079         o  If set to 1, indicates the inner address is IPv6.
1081      -  O bit (Outer address scheme):
1083         o  If set to 0, indicate the inner (private) address is IPv4.
1085         o  If set to 1, indicates the inner address is IPv6.

<major> A few related defects here, and together they make the flags field
unimplementable from its own text.

(a) Neither term is defined, and there is no reference. "Inner" and "outer"
appear in the document only in these lines. Section 1.3 Conventions
does not define them, no section explains what they denote, and no reference
is cited that would.

(b) The intended meaning appears to be pre-NAT versus post-NAT, but that is
inference. The parenthetical "(private)" at lines 1077 and 1083, read
against the Extended Port Attribute's actual fields, suggests inner = the
Local IP (the WAN port's own address) and outer = the Public IP (the address
after NAT). But the fields are named Local IP and Public IP, never "inner"
and "outer", and the mapping between the two flags and the two address
fields is stated nowhere. A reader has to guess which flag governs which
field.

(c) "Outer" already means something else in this document. The word is used
in other places, in an unrelated and conventional sense - the outer
tunnel of the SD-WAN Hybrid Tunnel:

[Linda] We will remove the undefined “inner/outer” terminology and use the field names consistently: the I bit indicates the address family of the Local IP field, and the O bit indicates the address family of the Public IP field. This also avoids confusion with the unrelated use of “outer tunnel” elsewhere in the document.


1294      Hybrid Tunnel TLV specifies the outer tunnel through which the
1295      underlay tunnel identified by SD-WAN Node ID passes.  This outer

1357      Endpoint represents the outer tunnel through which the underlay

<major> So one word carries two unrelated meanings in one specification,
neither of them defined.

(d) This is a tunnel encapsulation document. It defines a tunnel type, it
carries IPsec parameters, and it explicitly supports IPsec tunnel mode
(Section 2.3.5, line 947: "Mode = 1 indicates that the Tunnel mode is used").
In that context "inner address" and "outer address" have a well-established
meaning - the addresses of the encapsulated header and of the encapsulating
delivery header respectively - and an implementer is more likely arrive at that
reading than for pre-NAT/post-NAT. Under the wrong reading, "the inner
address is IPv6" says something about the traffic carried over the tunnel
rather than about the WAN port's own address, which is a different field, a
different question, and a different bit setting. The two readings conflict.

(e) If the terms are defined and the mapping is stated, a reader gets the
intent from context. Here there is no context to figure it from - an
undefined term, no mapping to the fields, a competing meaning elsewhere
in the document, and the one place the outer flag is described says
"inner" twice.

Simplest and best (assuming that I've understand all of this correctly?):
drop "inner" and "outer" entirely and name the flags after the fields they
govern. Rename the I bit to the L bit (Local IP address family) and the
O bit to the P bit (Public IP address family), and describe each as
governing the address family of the correspondingly-named field:

      - L bit (Local IP address family): if 0, the Local IP field
      contains a 32-bit IPv4 address; if 1, it contains a 128-bit IPv6
      address.

      - P bit (Public IP address family): if 0, the Public IP field
      contains a 32-bit IPv4 address; if 1, it contains a 128-bit IPv6
      address.

That resolves (a) through (e) at once, removes the collision with the tunnel
sense of "outer", and makes the flags self-describing. It also fixes the
"128 bits, not 64" error in the previous comment, so both should be done in
the same edit. If you prefer to keep "inner" and "outer", then both
terms must be defined in Section 1.3, the definition must state explicitly
that they denote the pre-NAT and post-NAT addresses and not the encapsulated
and encapsulating headers, the mapping to the Local IP and Public IP fields
must be stated, and the tunnel-sense uses at lines 1294, 1295, 1357, 1474
and 1477 need a different word. That is more work. Note also the third naming
in the same line: the I bit heading offers "C-PE port address or Inner
address scheme", two names for one bit. Whichever fix is taken, one name!
[Linda]  Agree. Renaming the flags to match the fields they govern is clearer and avoids the overloaded “inner/outer” terminology. We will rename the I bit to L for the Local IP address family and the O bit to P for the Public IP address family, with 0 indicating IPv4 and 1 indicating IPv6. This also aligns with the corrected 128-bit IPv6 field size.

1090   *  NAT Type (8 bits): an unsigned integer indicating the NAT behavior
1091      observed for this WAN port.  The values are derived from the
1092      legacy NAT classification model described in RFC 8489 Section 5.

1109      The NAT Type value is determined by the sender using NAT discovery
1110      procedures (e.g., STUN [RFC8489] with legacy tests [RFC8489]) or
1111      local administrative configuration.

<major> Section 5 of RFC 8489 is titled "STUN Message Structure" and
contains no NAT classification. RFC 8489 does not define Full Cone,
Restricted Cone, Port Restricted Cone or Symmetric NAT anywhere; that
taxonomy is from RFC 3489, and RFC 5389 removed it deliberately - it was
found not to predict NAT behaviour reliably, which is why RFC 4787 and RFC
5382 replaced it with a mapping-behaviour / filtering-behaviour
decomposition. "STUN [RFC8489] with legacy tests [RFC8489]" cites the same
RFC twice, and the "legacy tests" are in RFC 3489.

Beyond the citation, the substantive question is whether a single 8-bit
legacy NAT class is the right thing to signal at all. The behaviour a peer
needs to know in order to decide whether direct tunnel establishment can
work is the mapping behaviour and the filtering behaviour, which RFC 4787
defines separately and which do not collapse cleanly onto the cone taxonomy.

At minimum, correct the citation: reference RFC 3489 for the legacy
classification and say plainly that it is retained for compatibility with
existing SD-WAN implementations. Better, and worth putting for your thinking:
replace the single class with the RFC 4787 mapping-behaviour and
filtering-behaviour pair (two 4-bit or two 8-bit fields), referencing RFC
4787 normatively, and keep the legacy classes only if deployed
implementations require them. Either way, create the IANA registry (see the
next comment and the comment at line 1885) so the value set can evolve.
[Linda] Agree. The current RFC 8489 citation is incorrect for the legacy cone-based NAT taxonomy. We will either reference RFC 3489 explicitly if retaining the legacy classification for compatibility, or revise the encoding toward the RFC 4787 mapping/filtering behavior model. In either case, we will remove the incorrect “legacy tests [RFC8489]” text and define the corresponding IANA registry so the value space can evolve.


1112      to verify NAT behavior but MUST validate that the received NAT
1113      Type field is within the range 1-7.  Values outside this range are
1114      considered invalid and result in the Sub-TLV being treated as

1132      -  Those are the only two valid values for this field.

1244      *  Values outside the range 1-4 are invalid and render the Sub-TLV
1245         malformed.

1259      *  Values outside the range 1-4 are invalid and render the Sub-TLV
1260         malformed.

<major> Four fields define a small set of values and then make every other
value a malformed-sub-TLV condition, while Sections 6.5, 6.6 and 6.7 ask
IANA to create registries for three of those spaces (Encapsulation Types,
Connection Types, Physical Port Types). The two are incompatible: the point
of a registry is that new values get assigned, and the normative text
guarantees that any newly assigned value will be treated as malformed by
every already-deployed implementation. Because the failure is at the sub-TLV
level, a single unknown Connection Type - say a future "6 = satellite" or "5
= Wi-Fi 7" - invalidates the Extended Port Attribute sub-TLV and, per
Section 2.5.2 step 3, the entire tunnel TLV. That is a forward-compatibility
trap that will bite the first extension. The NAT Type space has the opposite
problem: it is closed by normative text and has no registry requested at
all, so it cannot be extended even by a future Standards Track document
without an document update.

The real distinction to introduce is malformed versus unusable, not lenient
versus strict. An unrecognised Connection Type, Port Type, Encap-Type or NAT
Type is not a syntax error - the sub-TLV parses perfectly - so it should not
be a malformed condition. Whether the advertisement is then usable is a
separate, local question. RFC 9830 keeps these strictly apart and is worth
following, not least because it shows that the strict answer is legitimate
once it is put in the right box: malformation in its Section 5,
unrecognised-but-well-formed content in its Section 4.2.2 as a usability
question. The consequence of that placement is the point - an unusable
update is still propagated, whereas a malformed one is withdrawn. This
document currently routes both to the same destructive outcome.

So: redefine unknown values in these four fields as "the receiver does not
know this property", state what a receiver does with a port whose properties
it cannot fully interpret (my suggestion: use it, but exclude it from
property-based tunnel selection), and reserve malformed for genuine encoding
errors. Add a NAT Type registry to Section 6. The pattern is worth applying
across the document, not only in these four places.

[Linda]  Agree. The current text incorrectly treats unrecognized-but-well-formed values as malformed, which prevents future registry extensions from being usable.
We will distinguish syntax errors from unsupported content. Unknown NAT Type, Encap-Type, Connection Type, and Port Type values will not by themselves make the Sub-TLV malformed. The receiver will treat the corresponding property as unsupported and MUST NOT use that property for property-based tunnel selection or establishment, while the advertisement remains otherwise valid and propagatable.
We will also add an IANA registry for NAT Type and apply the same malformed-versus-unsupported distinction consistently across these fields.


1117   *  Encap-Type (8 bits): An unsigned integer indicating the
1118      encapsulation type supported for this WAN port.  The Encap-Type
1119      identifies the encapsulation protocol used within the IPsec
1120      payload when IPsec SA Sub-TLVs (IPsec SA ID, IPsec SA Nonce, IPsec
1121      Public Key, IPsec SA Proposal, or Simplified IPsec SA) are present
1122      in the SD-WAN Hybrid Tunnel.  This field is distinct from the
1123      Tunnel Type field in the BGP Tunnel Encapsulation Attribute
1124      [RFC9012].

<question> RFC 9012 already has an Encapsulation sub-TLV (type 1) and a
Protocol Type sub-TLV (type 2) for exactly this - identifying the
encapsulation and the protocol carried within it - and Table 1 marks both
"not valid". The document then defines a new 8-bit field with two values and
requests a new registry for it (Section 6.5), duplicating registry space
that already exists. The note at line 1122 acknowledges the overlap and
dismisses it without giving a reason. So: why do the RFC 9012 Encapsulation
and Protocol Type sub-TLVs not serve here, and what would break if they were
used instead of a new field and a new registry? A sentence of rationale in
the document would settle it. I am not asserting the reuse is better, only
that the choice is unexplained.

[Linda] Good question. The intent is that Encap-Type is a property of an individual WAN port carried inside the Extended Port Attribute, whereas the RFC 9012 Encapsulation and Protocol Type Sub-TLVs describe the tunnel associated with the route/Tunnel TLV as a whole. We will add a sentence making this scope distinction explicit and explaining why the RFC 9012 Sub-TLVs are not reused here.


1164   *  Local Port: used by Remote SD-WAN edge node for establishing IPsec
1165      to this specific port.  Valid values: 0x00 - 0xFFFFFFFF.

1173   *  Public Port: The Port after the NAT.  If NAT is not used, this
1174      field is set to all-zeros.  Otherwise, the value can be 0x01 to
1175      0xFFFFFFFF.

<major> Figure 8 gives both fields a full 32-bit row. A UDP or TCP port
number is 16 bits. Assuming these are transport ports, in which case the
fields are twice the necessary width and the stated ranges admit values that
cannot be put on the wire - and it is undefined whether a receiver rejects a
value above 65535 or truncates it, which is an interop question - or they
are not transport ports, in which case the document needs to say what they
are. The name ("used by Remote SD-WAN edge node for establishing IPsec to
this specific port") reads as a transport port for IKE or ESP-in-UDP. Two
consequential points: the two ranges differ from each other for no stated
reason (0x00 vs 0x01 as the low bound), and the all-zeros convention at
lines 1177-1179 collides with 0 being a legal Local Port value. Please make
both fields 16 bits with valid range 0-65535, reclaim the remaining 32 bits
as Reserved (or drop them and adjust the length formula at line 1065), and
state that Local Port 0 means unspecified if that is intended. If the intent
was to leave room for a non-port identifier, say what it is.
[Linda] Agree. These fields are intended to carry transport-layer port numbers. We will change both Local Port and Public Port to 16 bits, use the valid range 0–65535, and define value 0 as “unspecified/not applicable.” The Extended Port Attribute length calculation will be updated accordingly.

1184   Sub-TLV Error Handling:  If the Extended Port Attribute Sub-TLV is
1185      malformed (e.g., incorrect length, invalid address format, or
1186      unrecognized NAT type), it MUST be ignored per the procedures
1187      described in [RFC9012].

1268   Underlay Network Type Sub-Sub-TLV is a MALFORMED Sub-Sub-TLV if the
1269   fields do not fit the limits specified above.  If a MALFORMED Sub-
1270   Sub-TLV is contained in the Extended Port Attribute Sub-TLV, then the
1271   Extended Port Attribute Sub-TLV is MALFORMED.  Per [RFC9012], a
1272   MALFORMED Sub-TLV is ignored.

1479   3.  Validate Extended Port Attribute Sub-TLV(s):  As described in
1480      Section 2.3.6, each Extended Port Attribute sub-TLV describes the
1481      properties of a single WAN port.  Therefore, multiple Extended
1482      Port sub-TLVs may be present when the SD-WAN edge node has
1483      multiple WAN ports.  Each sub-TLV MUST be validated to ensure that
1484      the port information it contains is sufficient to support the
1485      establishment of a tunnel to the remote peer.  If any Extended
1486      Port Attribute Sub-TLV is determined to be invalid, the entire SD-
1487      WAN Hybrid Tunnel TLV MUST be considered invalid.

<major> Section 2.3.6 says ignore the sub-TLV; Section 2.3.6.1 says ignore
the sub-TLV; Section 2.5.2 step 3 says invalidate the whole TLV. Three
outcomes for one condition, inside one document - that is the core of this
comment. What it does contradict is the claim at line 1560 that the document
"does not alter the validation behavior established in RFC 9012". It does
alter it, legitimately, for the context where it may - and says it does not.
See issue (1).

There is a second, independent problem in the same step. "validated to
ensure that the port information it contains is sufficient to support the
establishment of a tunnel to the remote peer" is not a testable condition -
"sufficient" is not defined anywhere, so two implementations will draw the
line differently, and the consequence (whole TLV invalid) is severe.

Please pick one outcome and state it once, in Section 2.6.1, with Sections
2.3.6 and 2.3.6.1 cross-referencing rather than restating. My recommendation
is to keep the strict outcome for underlay routes and declare it, following
Section 5 of RFC 9830: a malformed Extended Port Attribute sub-TLV renders
the SD-WAN Hybrid Tunnel TLV unusable, with the RFC 7606 disposition named
explicitly. Then separate the two questions the current text conflates:
malformed (a syntactic property - length, NAT Type in range, address-family
consistency, the Public IP/Public Port both-or-neither rule at lines
1177-1179) versus unusable (a semantic judgment - the port cannot be used to
build a tunnel). Replace "sufficient to support the establishment of a
tunnel" with the syntactic list, and handle the semantic case as a local
matter that does not affect the validity of the advertisement. RFC 9830
keeps these apart - malformed in its Section 5, unusable in its Section
4.2.2 - and that separation is what this document is missing.

[Linda] Agree. We will make the handling consistent and distinguish malformed encoding from a semantically unusable port. Section 2.6.1 will define the single normative outcome for a malformed Extended Port Attribute, and Sections 2.3.6/2.3.6.1<https://urldefense.proofpoint.com/v2/url?u=http-3A__2.3.6.1&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=3QxUPy-fV0G16Z4tIRByiA&m=IvfbfcCb_6ltI4MWVKBhR9W1Cw0nCLbty1w11RNlSiCzlba_aVKq4WAjRgLjSkON&s=3ESbkX8ZXjmEUZcyGY6OTrsJh2gjMiarz-q3TtYV1wY&e=> will simply reference it. The “sufficient to support tunnel establishment” test will be removed; semantic usability will remain a local decision and will not make the advertisement malformed.


1262   Port Speed:  An unsigned 16-bit integer representing the port speed
1263      in megabits per second (Mbps).  For example, a value of 1000
1264      represents a port speed of 1000 Mbps (1 Gbps).  The valid range is
1265      1-65535.  A Port Speed value of 0 is invalid and renders the Sub-
1266      TLV malformed.

<minor> 65535 Mbps is roughly 65 Gbps, which is below current WAN port
speeds - 100G and 400G interfaces are possible at SD-WAN aggregation sites
and in the cloud-DC scenario the document itself cites, and cannot be
represented at all. Please widen the field to 32 bits in Mbps; the
sub-sub-TLV has two octets of Reserved available, so the cost is nil.
Separately, redefine a Port Speed of 0 as "unknown or not advertised" rather
than malformed, consistent with the comment at line 1112.

[Linda] Agree. We will widen Port Speed to 32 bits in Mbps, using the existing reserved space, so higher-speed WAN interfaces can be represented. We will also define a value of 0 as “unknown or not advertised” rather than malformed, consistent with the treatment of other well-formed but unavailable properties.

1276   Client routes with NLRI of AFI/SAFI IPv4 Unicast (1/1), IPv6 (2/1),
1277   L3VPN v4 Unicast (1/128), and IPv6 L3VPN (2/128) that use the SD-WAN
1278   Hybrid Tunnel Type can be advertised using one of two mechanisms:

<major> Label handling for the L3VPN AFI/SAFIs is not specified. Section 2.4
(line 1276) applies the mechanism to AFI/SAFI 1/128 and 2/128, which carry
an MPLS label in the NLRI. When such a route is resolved over an SD-WAN
Hybrid Tunnel whose underlay segment is IPsec with GRE or VXLAN inside, the
document never says what happens to that label - whether it is imposed and
carried inside the tunnel, whether it is discarded, or how the receiver
knows which. Section 2.4.5 (lines 1424-1432) answers a different question
with a third mechanism: for a 1/128 route over the IPsec segment of a hybrid
tunnel there are then two VPN demultiplexers - the VPN label from the NLRI,
and the GRE Key or the VNI - with no statement of which is authoritative,
whether both are present, or how the GRE Key or VNI value is derived from
the control plane (from the RD? the RT? which octets of an 8-octet RT map
into a 24-bit VNI?). RFC 9012 already models this with the Embedded Label
Handling sub-TLV (type 9) and the MPLS Label Stack sub-TLV (type 10), both
of which Table 1 marks "not valid". The hybrid case makes it contradict: the
same client route may traverse an MPLS underlay segment on one path and an
IPsec segment on another within the same hybrid tunnel, so the demultiplexer
changes per underlay link for the same route. This was flagged in my RTGDIR
early review and is still open.

Please specify label handling explicitly for 1/128 and 2/128: state whether
the Embedded Label Handling sub-TLV applies (and if so mark it valid in
Table 1), state the mapping from the control-plane VPN identity to the GRE
Key and to the VNI with field widths and truncation rules, and state which
identifier is authoritative when both are present. If interoperable label
handling over the IPsec segment is not actually specified in this document,
the honest fix is to restrict Section 2.4 to 1/1 and 2/1 and remove 1/128
and 2/128 from scope until a document specifies it - that is better than
shipping an unimplementable case.

[Linda]  Agree. The current text does not define interoperable MPLS label handling for L3VPN routes over the IPsec portion of the hybrid tunnel. Rather than introduce a new label-to-GRE/VNI mapping mechanism here, we will restrict the Client Route procedures in this document to IPv4 and IPv6 unicast (AFI/SAFI 1/1 and 2/1) and remove AFI/SAFI 1/128 and 2/128 from scope.

1347      ignored and a Sub-TLV with an unknown type is ignored.  The SD-WAN
1348      Hybrid Tunnel TLV only processes the first instance of a Sub-TLV
1349      except for the IPsec SA ID Sub-TLV.

<major> This is Section 2.4.2 step 1 - the client-route procedure, where RFC
9012 binds. Section 13 of RFC 9012: "The following sub-TLVs defined in this
document may appear zero or more times in a given Tunnel TLV: Protocol Type
and Color. Each occurrence of such sub-TLVs is meaningful. For example, the
Color sub-TLV may appear multiple times to assign multiple colors to a
tunnel." Table 1 marks the Color sub-TLV valid for client routes, so a
blanket first-instance-only rule silently drops colours an RFC 9012 speaker
would have honoured. Note that this compounds the comment at line 362: the
document already gives Color the wrong code point, and now also processes
only its first instance.

[Linda] Agree. For Client Routes, RFC 9012 occurrence rules apply, so the blanket “first instance only” rule is incorrect. We will remove that rule from the Client Route procedure and rely on RFC 9012 for handling repeated Sub-TLVs, including multiple Color and Protocol Type Sub-TLVs.


1465      If multiple Extended Port Sub-TLVs exist, the TLVs must be
1466      validated in step 4.  For all other valid Sub-TLVs (see section
1467      2.1), only the first instance of a Sub-TLV is processed;
1468      subsequent ones are ignored.

<major> This is Section 2.5.2 step 1, the underlay-route procedure. There
the rule is OK in itself - no RFC 9012 sub-TLV except Tunnel Egress Endpoint
is valid on SAFI 74, and this document may set its own multiplicity rules.
The problem there is different: Section 2.5.2 step 1, Section 2.4.2 step 1,
Section 2.6.1 line 1577 ("local policy MUST determine which is to be used")
and Section 2.3.6 line 1189 (first-one-wins-if-identical) give different
answers for the Extended Port Attribute alone.

Please split the rule by context. For client routes, scope the
first-instance rule to the sub-TLVs this document defines and leave RFC
9012's own sub-TLVs to RFC 9012 - which for Color means honouring all
occurrences. For underlay routes, state multiplicity per sub-TLV in one
place; Section 2.4 of RFC 9830 shows the pattern, a general
first-instance-wins rule that explicitly does not treat the duplicates as
malformed, plus a one-line multiplicity statement in each individual sub-TLV
definition. Adding that one line to each of Sections 2.3.1 to 2.3.6 would
remove this whole class of contradiction.
[Linda] Agree. We will separate the multiplicity rules by context. Client Routes will follow RFC 9012 for RFC 9012-defined Sub-TLVs. For SAFI-74 Underlay Routes, this document will define the multiplicity of each SD-WAN-specific Sub-TLV consistently in its individual definition, with duplicate well-formed instances not treated as malformed.


1361   3.  Check for Multiple SD-WAN Hybrid Tunnel TLVs  Multiple unique SD-
1362      WAN Hybrid Tunnel TLVs MAY be included in the Tunnel Encapsulation
1363      Attribute, but duplicate SD-WAN Hybrid Tunnel TLVs should be
1364      ignored silently.  Optionally, duplicate SD-WAN Hybrid Tunnel TLVs
1365      MAY be logged.

1537   An underlay tunnel passes through only one SD-WAN Hybrid Tunnel.
1538   Therefore, if there are more than one SD-WAN Hybrid Tunnel TLV within
1539   a single Tunnel Encapsulation Attribute, the first is processed and
1540   the subsequent SD-WAN Hybrid Tunnel TLVs are ignored.

<major> For client routes, multiple TLVs are allowed if "unique" and
duplicates are ignored; for underlay routes, only the first is ever
processed. "Unique" and "duplicate" are not defined - identical
byte-for-byte, same Tunnel Egress Endpoint, same colour set? Two TLVs
differing only in an IPsec SA ID are presumably not duplicates, but two
differing only in a Reserved field presumably are.

Two options. If multiple SD-WAN Hybrid Tunnel TLVs are genuinely useful on a
client route, define "duplicate" concretely - I suggest two are duplicates
if their Tunnel Egress Endpoint sub-TLVs resolve to the same endpoint - and
state the rule once for both contexts with a normative keyword. If they are
not, the cleaner answer is Section 2.2 of RFC 9830's: forbid more than one
tunnel TLV of the type outright and treat a violation as malformed. That
removes the need to define "duplicate" at all, and Section 2.5.4's own
reasoning - "An underlay tunnel passes through only one SD-WAN Hybrid
Tunnel" - points that way for the underlay case at least. Whichever is
chosen, the two sections must agree.

<major> Separately, on the lowercase "should" at line 1363: this is a
lowercase keyword in a sentence that is normatively load-bearing. Whether a
receiver ignores a duplicate tunnel TLV or acts on it determines which
tunnel gets built, so two implementations reading it differently will not
interwork. It needs an uppercase BCP14 keyword, alongside the definition of
"duplicate" above.

[Linda] Agree. The Client Route and Underlay Route procedures should use one consistent rule. We will allow only one SD-WAN Hybrid Tunnel TLV per Tunnel Encapsulation Attribute; if more than one is present, the attribute is malformed and handled according to the error procedures in Section 2.6. This removes the undefined “unique/duplicate” distinction and the non-normative lowercase “should”.


1407   *  For IPv4/IPv6 Unicast (AFI/SAFI = 1/1 or 2/1), the Route Target
1408      Extended Community [RFC4360] SHOULD be included.  The Route Target
1409      value is interpreted as the VPN ID.  The Route Target is
1410      especially necessary when the SD-WAN edge node serves multiple
1411      VPNs on its client-facing interfaces.  If all client routes belong
1412      to a single VPN and the association is unambiguous, the Route
1413      Target MAY be omitted.
1415   *  For VPN-IPv4/VPN-IPv6 (AFI/SAFI = 1/128 or 2/128), the RD in the
1416      NLRI serves as the VPN ID.

<major> The second bullet is right and the first does not work. Under 1/1
and 2/1 the NLRI is the bare prefix, so two routes for 10.1.1.0/24<https://urldefense.proofpoint.com/v2/url?u=http-3A__10.1.1.0_24&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=3QxUPy-fV0G16Z4tIRByiA&m=IvfbfcCb_6ltI4MWVKBhR9W1Cw0nCLbty1w11RNlSiCzlba_aVKq4WAjRgLjSkON&s=v1MKEA5bpMDRk2tpTEbo7huc3qGCBjzLRqeKm7hrH5U&e=> from two
different VPNs are the same route in the Adj-RIB-In; the Route Target is a
path attribute and cannot separate them. The receiving speaker runs
best-path selection between them and keeps one. This is exactly the problem
RFC 4364's Route Distinguisher exists to solve, and the reason L3VPN uses
1/128 rather than 1/1 with an RT.

The mechanism does work in the restricted case where prefixes are globally
unique across all VPNs served by the SD-WAN - which is the case the second
half of the bullet describes ("If all client routes belong to a single
VPN"). But it is stated as a general mechanism for the multi-VPN case
("especially necessary when the SD-WAN edge node serves multiple VPNs"),
which is precisely where it fails. There is a second, smaller point that
Alvaro also raised and that is still open: "When is it ok to not include
the Route Target Extended Community?" - "the association is unambiguous"
is not a testable condition for a normative SHOULD.

Please state the applicability limit explicitly: RT-as-VPN-ID over 1/1 and
2/1 is usable only where the address space is non-overlapping across the
VPNs carried, and multi-VPN deployments with overlapping address space MUST
use 1/128 or 2/128. Then either delete "especially necessary when the SD-WAN
edge node serves multiple VPNs" or rewrite it to say that the RT identifies
the VPN for policy purposes but does not provide address separation. And
replace the "unambiguous" condition with a concrete one.

[Linda] Agree. Since we are removing AFI/SAFI 1/128 and 2/128 from the Client Route scope, we will also remove this VPN-ID mechanism. For AFI/SAFI 1/1 and 2/1, a Route Target may still be used for policy, but it does not provide address-space separation; overlapping VPN prefixes are therefore outside the scope of this mechanism.


1420   In the data plane, SD-WAN traffic can traverse either an MPLS or
1421   IPsec segment within a SD-WAN Hybrid Tunnel.  The method for
1422   conveying the VPN ID depends on the encapsulation:
1424   *  MPLS Segments: When the SD-WAN Hybrid Tunnel uses MPLS transport,
1425      the MPLS label stack is used to identify the VPN per [RFC8277].
1426      Security is assumed to be provided by the MPLS transport.
1428   *  IPsec Segments: When traversing a public network with IPsec
1429      encryption: For GRE encapsulation within IPsec, the GRE Key field
1430      can carry the SD-WAN VPN ID; For VXLAN network virtualization
1431      overlays within IPsec, the VNI (Virtual Network Identifier) field
1432      is used to carry the VPN ID.

<major> Independently of the label question raised earlier in this
review, this text specifies data-plane encapsulation semantics - what the
GRE Key field and the VXLAN VNI carry - in an IDR control-plane document,
with no normative language at all in a section whose content determines
interoperability; no reference to GRE (RFC 2890, which defines the Key
field) or VXLAN (RFC 7348, which defines the VNI), neither of which is
referenced anywhere in the document although Encap-Type values 1 and 2 are
GRE and VXLAN; no derivation rule from the control plane; and "Security is
assumed to be provided by the MPLS transport" stated as a bare assumption in
a specification section.

My recommendation is to keep the text here and specify it properly. What
it needs is to be specified rather than described:

   1) Normative language. This text determines whether two implementations
      interwork; it currently contains no BCP 14 keywords at all.

   2) References. Cite RFC 2890 for the GRE Key field and RFC 7348 for the
      VXLAN VNI, both as normative references.

   3) Derivation. State how the SD-WAN VPN ID value is obtained from the
      control plane and how it maps into each field - an 8-octet Route
      Target does not fit a 32-bit GRE Key or a 24-bit VNI, so the
      truncation or allocation rule has to be stated.

   4) Precedence. State which identifier is authoritative when a route
      carries both an MPLS VPN label and a GRE Key or VNI, and whether both
      are present.

   5) Per-segment behaviour. A hybrid tunnel may carry the same client route
      over an MPLS underlay segment on one path and an IPsec segment on
      another, so the demultiplexer changes per underlay link for one route.
      Say what an implementation does at that boundary.

   6) Delete "Security is assumed to be provided by the MPLS transport", or
      replace it with a statement of what is actually assumed and by whom. A
      bare assumption of that kind in a specification section is not
      something the Security Considerations can build on.
[Linda] This is largely addressed by the earlier change removing AFI/SAFI 1/128 and 2/128 and the associated MPLS-label/VPN-ID handling from scope. We will also remove this GRE Key/VXLAN VNI VPN-ID mapping text, since the document no longer defines a VPN demultiplexing mechanism for Client Routes. That avoids introducing additional data-plane mapping and precedence rules in this control-plane document.


1495   5.  Validate Next Hop:  The IP address specified in the Next Hop
1496      field MUST be reachable by the tunnels.  Traffic from the
1497      validated NLRIs must be forwarded to the next hop router over the
1498      tunnel.

<major> This is step 5 of the underlay route procedure (Section 2.5.2), and
the second sentence is incoherent for that NLRI. An SD-WAN Route Type 1 NLRI
is a (Port-Local-ID, SD-WAN-Color, SD-WAN Node ID) tuple identifying a WAN
port. It is not a prefix and it has no traffic; there is nothing that could
be "traffic from the validated NLRIs". Nor is there a reason for the
underlay route's next hop to be "reachable by the tunnels" - the tunnels are
what this NLRI is describing, so the requirement is circular.

The document comes close to saying the right thing in Section 2.2.3 (lines
561-570: the attributes "apply to the WAN-facing tunnel endpoints being
advertised, not to client routes") but never draws the consequence: the
SD-WAN NLRI is not installed in the forwarding table, and its next hop is a
BGP-protocol next hop for propagation purposes, not a forwarding next hop.
This is a direct symptom of issue (1) - the client-route procedure (Section
2.4.2) and the underlay-route procedure (Section 2.5.2) were written in
parallel with the same five step headings, and step 5 was carried across
from a context where it makes sense to one where it does not.

Please delete the second sentence of Section 2.5.2 step 5, and replace the
first with the actual requirement - that the Next Hop is validated per the
encoding rules asked for at line 291 and used for propagation, and that the
SD-WAN NLRI is not installed for forwarding. Section 4.2 of RFC 9830 gives
the sentence to model: the best route on that SAFI is not downloaded to
forwarding but passed to a separate local component. State the analogous
thing here, naming the SD-WAN tunnel manager per issue (2).

[Linda] Agree. This is not addressed by the earlier changes. For an SD-WAN Underlay Route, the NLRI describes WAN/tunnel properties and is not itself a forwarding prefix. We will remove the traffic-forwarding sentence and clarify that the Next Hop is validated as a reachable BGP Next Hop for the advertising SD-WAN edge, while the SAFI-74 route is used for SD-WAN tunnel information rather than installed as a forwarding route.


1520      Port-Local-ID (0), SD-WAN-Color (10), SD-WAN Node ID (2.2.2.2),
1522      Port-Local-ID (0), SD-WAN-Color (20), SD-WAN Node ID (2.2.2.2),
1525      Port-Local-ID (0), SD-WAN-Color (30), SD-WAN Node ID (2.2.2.2).

1695   *  SD-WAN Node ID: 1.1.1.1

<nit> idnits reports these as instances of IP addresses that are not from the
documentation prefixes.
[Linda] Agree. We will replace these example addresses with addresses from the IPv4 documentation prefixes defined in RFC 5737 so that idnits no longer flags them.


1555   The error handling for the tunnel encapsulation signaling
1556   (Encapsulation Extended Community and Tunnel Encapsulation Attribute)
1557   in this document follows the procedures specified in Section 13 of
1558   [RFC9012].  Unless otherwise stated, malformed or unrecognized Sub-
1559   TLVs MUST be handled as specified in [RFC9012].  This document
1560   defines new Sub-TLVs for Tunnel Type 25 (SD-WAN-Hybrid), but does not
1561   alter the validation behavior established in RFC 9012.

<major> The final sentence is incorrect, and it is the single passage most
responsible for the confusion described in issue (1). For client routes,
where RFC 9012 does govern, the document does alter its validation behaviour
- in at least two places where it is not free to: treating an absent Tunnel
Egress Endpoint sub-TLV as Address Family 0 (line 346), and processing only
the first instance of any sub-TLV, which contradicts RFC 9012's rule for
the Color sub-TLV (line 1347). For underlay routes on AFI/SAFI 1/74 and 2/74,
RFC 9012 established no validation behaviour, because Section 6 of RFC 9012
puts other AFI/SAFIs outside its scope. So the claim is not false there so
much as empty - and its effect is to conceal that the document is making its
own validation choices for that SAFI, some of which are stricter than
RFC 9012's (line 1184). Those choices are defensible; presenting them as
RFC 9012 conformance is not.

Please replace the final sentence with a statement of which RFC 9012
procedures are inherited in which context. Something of the form: "For the
AFI/SAFIs listed in Section 6 of [RFC9012], the validation and error
handling procedures of Section 13 of [RFC9012] apply unchanged. For the
SD-WAN SAFI, which is outside the scope of [RFC9012], the procedures in
Section [X] of this document apply." Then correct the two client-route
deviations per the comments at lines 346 and 1347, and declare the
underlay-route choices per the comment at line 1184. The whole passage
should move into whichever of the three new sections it belongs to once the
split in issue (3) is done.
[Linda] This is addressed by the earlier changes: Client Routes now follow RFC 9012 validation and multiplicity rules, including requiring the Tunnel Egress Endpoint Sub-TLV as specified there, while SAFI-74 Underlay Routes use the validation and error-handling procedures defined by this document. We will replace the current final sentence with that explicit distinction.


1582   The SD-WAN NLRI [AFI 1/SAFI = 74] utilizes a route type field to
1583   describe the format of the NLRI.  This specification only allows an
1584   NLRI with a type value of 1.

1596   The SD-WAN NLRI (AFI=1/SAFI=74) MUST be paired with Tunnel
1597   Encapsulation attribute with a SD-WAN Hybrid tunnel TLV, If the SD-
1598   WAN NLRI exist in an BGP UPDATE without a Tunnel Encapsulation
1599   Attribute with a SD-WAN Hybrid tunnel TLV, the NLRI is considered
1600   malformed and Treat-as-withdraw approach (per RFC7606).

<major> Both passages scope themselves to AFI 1 only, while Sections 2.2.1
and 2.4 define both 1/74 and 2/74. Taken literally, Section 2.6.2's
route-type validation and Section 2.6.3's pairing requirement do not apply
to IPv6 SD-WAN SAFI routes at all - so an implementation could accept an
IPv6 SD-WAN SAFI route with no TEA and remain conformant. That is a
substantive gap in the error handling rather than a citation slip. Please
write both as "SD-WAN SAFI routes (AFI/SAFI 1/74 and 2/74)" per the
terminology in issue (4), repair the second sentence, and check the rest of
Section 2.6 for the same AFI-1-only scoping.

[Linda] Agree. We will scope both sections consistently to SD-WAN SAFI routes using AFI/SAFI 1/74 and 2/74, and correct the pairing requirement accordingly. We will also check the rest of Section 2.6 for any remaining IPv4-only references.


1602   The SD-WAN NLRI SHOULD not be paired with an Encapsulation Extended
1603   Community.  If an SD-WAN NLRI is paried with an Encapsulation
1604   Extended Community rather than a Tunnel Encapsulation Attribute, the
1605   SD-WAN NLRI is considered malformed and the Treat-as-withdraw
1606   approach (per [RFC7606]) SHOULD be used.

<major> Against Section 2.5.1 (lines 1450-1452), which says "MUST NOT" where
this says "SHOULD not", for the same condition. So, we have: a direct
normative contradiction between two sections on the same requirement;
"SHOULD not" is not a BCP 14 construction, which idnits flags and which is
real, so whichever way the requirement resolves the keyword must be "SHOULD
NOT" or "MUST NOT"; and the receiver action is a SHOULD, when whether a
route is withdrawn or accepted cannot be a local choice - one speaker
withdraws and its neighbour does not, and the RIBs diverge. Please delete
Section 2.6.3's second paragraph and keep Section 2.5.1's MUST NOT, adding
the receiver behaviour there as a MUST (treat-as-withdraw per RFC 7606).
Reconcile the first paragraph of Section 2.6.3 with Section 2.2 at the same
time - the two say the same thing in different words, which is how they
drifted apart.

[Linda] This has been addressed by the earlier Section 2.6.3 cleanup. We will also remove this remaining duplicate/inconsistent paragraph, retain the MUST NOT requirement in Section 2.5.1, and make the receiver action a normative MUST treat-as-withdraw per RFC 7606.


1614   It is essential to ensure that advertisements from an SD-WAN edge
1615   node are legitimate.  The RR, which maintains policy information
1616   about which SD-WAN nodes are authorized to communicate, MUST verify
1617   that the advertising BGP speaker is permitted to originate SD-WAN
1618   Hybrid Tunnel information before reflecting such routes to other
1619   peers.

1628   To maintain correctness and security, both the RR and BGP speakers
1629   SHOULD validate that the client routes and associated tunnel
1630   information are consistent with expected configurations.  This
1631   includes verifying that:
1633   *  The NextHop in the client route update matches a known SD-WAN Node
1634      ID.
1636   *  The tunnel's egress endpoints are reachable and authorized.
1638   *  The advertised SD-WAN Color in the underlay NLRI matches the Color
1639      Extended Community attached to the client route.
1640

<major> Both passages carry BCP 14 keywords placed on BGP - a MUST on the RR
and a SHOULD on "both the RR and BGP speakers" - and so read as protocol
requirements. They are not implementable as such. BGP has no notion of which
node is "permitted to originate SD-WAN Hybrid Tunnel information", no notion
of "expected configurations", and no way to determine that a tunnel egress
endpoint is "authorized". The document supplies no procedures for any of it:
no source of the policy information, no encoding for it, no distribution
mechanism, no matching algorithm, no behaviour on failure beyond the bare
verb "verify". A normative keyword on an operation with no specified
procedure is not a requirement; it is an aspiration in requirement's
clothing, and an implementer cannot conform to it or fail to conform to it.

This is the only origin-authorisation statement in the document
(issue (7)(e)), and the third bullet is the only normative statement of
the colour-correlation rule that Sections 2.4 and 2.5 depend on (see the
comments at lines 291 and 362). So the load-bearing security and correlation
requirements of the whole mechanism rest on text that specifies nothing.

Please consider one of the two options; either is acceptable and the choice
is yours.
(a) Reframe as applicability or deployment considerations and drop
the BCP 14 keywords: state the same content as what a deployment is expected
to arrange, in the applicability and deployment considerations section
created by issue (5), in non-normative language - that the SD-WAN controller
is expected to hold policy governing which edge nodes may originate which
Node IDs and Colors, and that the mechanisms in this document assume such
policy is in place. This is honest about what the document actually delivers,
and it is consistent with Section [N].1 of the supplied text, which already
states the closed-set assumption.
(b) Assign the onus to a named component: introduce, or extend, a
management-plane component that owns policy - either something new, or by
broadening the SD-WAN tunnel manager of issue (2) and renaming it accordingly
("SD-WAN Manager" would cover both tunnel lifecycle and policy). The document
would then state that policy definition, distribution and enforcement are the
responsibility of that component and out of scope here, with BGP's role
limited to carrying the information. If option (b) is taken, the component
name and scope in issue (2) change throughout and both should be resolved
together.

In either case, this material does not belong in Section 2. Section 2 is the
BGP protocol specification, and none of this is BGP protocol. One
consequential point: issue (7)(e) asks for the origin-authorisation
constraint - which Node IDs, Colors and Port-Local-IDs an authorised edge
may claim - to be stated as normative text in the specification sections,
and that placement follows whichever of (a) or (b) is chosen here.
Separately, the colour-correlation rule in the third bullet is genuinely a
protocol matter and does belong in the specification, but as part of the
interaction procedures that issue (3) creates, expressed as an
encoding-level comparison the receiver performs - not as a policy check.

[Linda]  Agree. We will treat origin authorization and expected configuration as deployment/management policy rather than BGP protocol requirements, and remove the BCP 14 keywords from those statements. The color-correlation check will remain in the protocol procedures as an explicit comparison between the Client Route Color Extended Community and the SD-WAN-Color carried in the underlay NLRI.


1683 3.2.1.  Example creation of IPsec SA over SD-WAN Hybrid Tunnel

<minor> No IPv6 examples. The document defines AFI 2/74, a 16-octet SD-WAN
Node ID, and IPv6 handling in the Extended Port Attribute, but every example
is IPv4. This will likely run into problem from INT ADs during IESG review.
Please add one, using 2001:db8::/32.

[Linda] Agree. We will add an IPv6 example to Section 3.2.1 using an address from the 2001:db8::/32 documentation prefix, covering AFI/SAFI 2/74 and the corresponding IPv6 SD-WAN Node ID/port information.


1690   To establish this tunnel, C-PE1 must advertise the following
1691   attributes required for setting up the IPsec SA:
1693   *  NextHop: 198.51.100.10
1695   *  SD-WAN Node ID: 1.1.1.1
1697   *  SD-WAN-Site-ID: 1502

<major> Three problems in the document's only end-to-end example. The reason
this is not merely an example-quality nit is that the example and the
specification contradict, and it is at least as likely that the example
reflects what implementers actually do and the specification is the part
that is wrong!

(a) It contradicts Section 2.5, and the contradiction points at the
specification rather than at the example. Lines 1442-1444: "Remote nodes use
the SD-WAN Node ID carried in the SD-WAN SAFI to correlate client routes
whose NextHop address matches the SD-WAN Node ID." And Section 2.1.2, lines
1421-1422: "The SD-WAN NLRI is originated using the loopback address of the
C-PE." In the example the NextHop is 198.51.100.10 - a WAN port address, and
the address of the very port the example is building a tunnel to - while the
Node ID is 1.1.1.1. They do not match, so the correlation the specification
depends on would fail. Setting the next hop to the WAN port address is the
natural thing to do when the advertisement is about that port, and it is
evidently what the example's authors expected. That suggests the
specification's correlation rule is the part that is wrong, or that it is
stated for the client-route case and has been wrongly generalised to the
SD-WAN SAFI case. Please resolve it as a specification question first - the
comment at line 291 is where the rule itself is examined - and correct the
example to match whatever comes out of that, rather than the other way
round.

(b) SD-WAN-Site-ID is used and never defined. It appears here and at line
1734 and nowhere else in the document - not in Section 1.3 Conventions, not
in any encoding, not in IANA. A reader cannot tell whether it is the
SD-WAN-Color, a field that was removed, or something from a companion
document.

(c) The example demonstrates only failure, using undefined placeholders.
Lines 1761-1762: "As there is no matching transform between the WAN ports P2
and P2 in C-PE1 and C-PE2, respectively, no IPsec Tunnel will be
established." But both sides advertise Transform Type ENCR with Transform ID
= 1 - the same algorithm. The only difference is the Transform Attributes,
given as "trans 1" and "trans 2" (lines 1718, 1752), which are not values
defined anywhere. So the example asserts a mismatch that its own data does
not show, and the document contains no example of a successful SA
establishment - which is the case a reader actually needs.

A minor consistency point in the same example: the tunnel type is written
"Type = SD-WAN Hybrid Tunnel" for C-PE1 (line 1699) and "Type=SD-WAN" for
C-PE2 (line 1736). And line 1705, "IPsec information for detailed
information about the ISP", has no discernible meaning.

Please rework the example to show a successful establishment with real
values from the IANA IKEv2 registries, correct the NextHop / Node ID
relationship to match Section 2.5 (or fix Section 2.5), define or delete
SD-WAN-Site-ID, and keep the failure case as a second, shorter example if it
is wanted. Use RFC 5737 documentation addresses throughout, per the comment
at line 1520.
[Linda] Agree. We will rework the example to be consistent with the revised specification: the BGP Next Hop will be a reachable address of the advertising SD-WAN edge and will not be required to equal the SD-WAN Node ID; the undefined SD-WAN-Site-ID will be removed; and the example will show a successful IPsec SA establishment using defined IKEv2 transform values and RFC 5737 documentation addresses. We will also fix the tunnel-type naming and remove the unclear ISP sentence.


1780   interfaces.  The use of secure transport connections (e.g., BGP over
1781   IPsec/TLS) is RECOMMENDED to ensure manageability in untrusted
1782   environments.

<major> The connection between secure transport and manageability is not
apparent, and this is the third statement of the transport-security
requirement at a third strength. Please delete the sentence; the comment at
line 148 places the single normative statement that replaces all three.
And BGP over TLS is not an RFC - please refer to discussions in the IESG
during the review of the accompanying BESS SD-WAN document.
[Linda] Agree. We will delete this duplicate transport-security sentence. The single normative transport-security requirement will remain in Section 1, and we will not cite BGP over TLS as an established RFC mechanism.

1784 5.  Security Considerations

1786   This document defines BGP extensions for SD-WAN edge nodes to
1787   advertise their attributes for establishing IPsec SAs and underlay
1788   tunnel attributes, typically via a RR, which then propagates them to
1789   authorized SD-WAN peers.  These BGP UPDATEs may contain sensitive
1790   information such as public keys, IPsec proposals, and nonces.  In
1791   deployments where SD-WAN edge nodes communicate with the RR over
1792   public or untrusted networks, BGP SHOULD be run over TCP-AO secure
1793   transport that provides authentication and integrity for this data.

1795   Some network operators running SD-WAN edge over public or untrusted
1796   networks desire confidentiality as well as authentication and
1797   integrity.  In this case, network operators can consider running BGP
1798   over new IETF technologies (e.g. BGP over QUIC [draft-retana-idr-bgp-
1799   quic], BGP over TLS/TCP [draft-wirtgen-bgp-tls], or Securing BGPv4
1800   using IPsec [draft-ward-bgp-ipsec]) which provide authentication,
1801   confidentiality, and Integrity.

1803   These two sets of secure transport technologies for BGP provide
1804   different levels of protection against tampering or interception.
1805   These secure transport connections are needed to protect all fields,
1806   including cryptographic attributes, from tampering or interception.
1807   Without such protection, the system maybe vulnerable to spoofed
1808   tunnel attributes, unauthorized route injections, or replayed IPsec
1809   setup information.

1811   However, in closed or "walled garden" deployments, where SD-WAN edge
1812   nodes and the RR (SD-WAN controller) are within a trusted, secured
1813   environment (e.g., a private MPLS backbone or physically secured
1814   enterprise network), the risk of interception or tampering is
1815   significantly reduced.  In such cases, the use of secure transport is
1816   optional, and operators may choose to run BGP over standard TCP,
1817   based on their internal risk assessment.

1819   Regardless of the transport used, BGP policy enforcement remains
1820   critical.  The RR SHOULD apply strict filtering and policy controls
1821   to validate that only authorized SD-WAN edge nodes advertise specific
1822   Node IDs, Route Targets, or VPN identifiers.  While route origin
1823   validation via RPKI helps, it does not cover SD-WAN-specific fields
1824   like Tunnel attributes or SA proposals.  Local policies, when
1825   misconfigured, may introduce vulnerabilities; therefore, policy
1826   application points SHOULD be carefully audited.

1828   Many of the general BGP security risks discussed here are also
1829   covered in [RFC4271], [RFC4272], and [RFC9012].  This document
1830   inherits those considerations and introduces no new cryptographic
1831   requirements beyond what is described for securing BGP transport and
1832   validating the correctness of SD-WAN tunnel attribute exchanges.

1834   This specification does not define deployments across fully untrusted
1835   networks, but if such environments are used, strong transport
1836   security is critical and additional validation mechanisms may be
1837   required to maintain SD-WAN tunnel and routing integrity.


<major> The Security Considerations analyse neither layer, and never state the
trust model

(a) The RR is the trust anchor of the entire solution, and the document
never says so. Section 1, at lines 173-177, does establish what the RR is:
"In the context of this document, BGP Route Reflector (RR) is the component
of the SD-WAN Controller system that receives the BGP UPDATE from SD-WAN
edges and in turn propagates the information to the intended peers that are
authorized to communicate via the SD-WAN overlay network." By that
definition the RR is the SD-WAN controller, and it is therefore inherently
the trusted nerve centre of the whole solution: every edge node's tunnel and
security parameters pass through it, it is the only entity with a complete
view of them, and the mechanism works only insofar as it redistributes them
faithfully and to the correct peers. That is the architecture, and it is not
a criticism of it. The defect is that this consequence is drawn nowhere -
the reader is left to infer the trust model from a definitional sentence in
the Introduction.

Two places actively obscure it. First, Section 5 mentions the relationship
only inside the walled-garden paragraph at lines 1811-1815, where it reads
as a property of particular deployments. By Section 1's definition the RR is
the controller in every deployment, so the trust relationship is not
deployment-dependent; only the environment it sits in is. As written, a
reader could conclude that the RR is trusted only in walled-garden
deployments, which is not the model. Second, Section 1's own framing
disclaims the centring it has just established, at lines 179-186 - see also
the comment at line 179, where that passage is separately flagged as
unfinished.

State the trust model plainly and early - in Section 1 where the RR is
defined, and again at the top of Section 5. The supplied text for Section
[N].1 in issue (5) already carries the wording; please use it rather than
composing a second version. Then rewrite the walled-garden paragraph so that
it is about the environment the RR sits in, not about whether the RR is
trusted.

(b) Confidentiality is made optional exactly where it cannot be. Continuing
the same passage, lines 1815-1817: "In such cases, the use of secure
transport is optional, and operators may choose to run BGP over standard
TCP, based on their internal risk assessment." This is stated
unconditionally, with no carve-out for UPDATEs carrying the Simplified IPsec
SA (sub-TLV 70) or IPsec Public Key (sub-TLV 68) sub-TLVs. If the two keys
at line 913 turn out to be symmetric keys, running that over plain TCP
defeats the purpose of the IPsec tunnels the document exists to establish.
Note also that TCP-AO, which the document recommends as the primary
mechanism, provides authentication and integrity but not confidentiality, so
its own primary recommendation does not protect the key material it carries.
Make transport confidentiality a MUST for any UPDATE carrying sub-TLV 68 or
70, and restrict the walled-garden paragraph to deployments not using those
sub-TLVs. The single normative statement of the transport requirement itself
is placed by the comment at line 148.

(c) <question> Have the forward secrecy properties of security associations
established from BGP-distributed parameters been considered, and is there a
WG discussion to point at? The document says nothing about them either way.
No assertion and no comparison is intended here. Whatever the answer, the
actionable requirement is issue (5)'s: the applicability section must record
that these properties have not been characterised. If they have been
considered, then the analysis should appear in Section 5 and the
corresponding item in the supplied text can be withdrawn.

(d) The Rekey Counter has no anti-replay procedure. The field is defined at
lines 709-711 and the nonce is described as "a random or pseudo-random
number for preventing replay attacks" at line 717, but no section says what
a receiver does with either: whether an advertisement carrying a Rekey
Counter not greater than the stored value is rejected, what happens on
counter wrap, or how the counter survives an edge node restart. The
anti-replay machinery is present in the encoding and absent from the
procedures. This is the clearest instance of the root cause in issue (2):
the question "who consumes the Rekey Counter" has no answer in the document
because there is no stated division of labour between BGP and anything else.
Once that boundary exists the question resolves one way or the other -
BGP-visible with a stated comparison rule, or opaque and handed over - and
either answer is fine. The fix is carried by the comment at line 584.

(e) The authorised-but-malicious edge node is not considered. Section 3
requires the RR to check that a speaker is permitted to originate SD-WAN
Hybrid Tunnel information (lines 1614-1619), but nothing constrains which
Node IDs, SD-WAN-Colors or Port-Local-IDs an authorised edge may claim. An
authorised edge can advertise another edge's Node ID, or claim membership of
a Color it should not be in, and attract that traffic. State the constraint
and the receiver's validation of it: an SD-WAN edge node MUST NOT originate
an SD-WAN SAFI route whose SD-WAN Node ID is not its own, and a receiver
MUST validate the SD-WAN Node ID against the identity of the advertising
speaker before using the advertisement. Section 5 then references this as
the mitigation for the exposure.

This one is checkable from the advertisement itself - the Node ID is on the
wire and the advertising speaker's identity is known from the session - so
it is a protocol requirement and belongs in Section 2 with the rest of the
SD-WAN SAFI procedures, subject to the destination chosen for the comment at
line 1614. What is not protocol is the out-of-band policy governing which
edge nodes may communicate with which, and which Colors an edge is entitled
to use; those cannot be validated from the advertisement and have no
procedures, and they go wherever the comment at line 1614 is resolved to.
Keeping the two apart is the point: the wire-checkable constraint should be
normative here, and the policy should stop pretending to be.

Overall: rewrite Section 5 around the exposures the mechanisms create at the
BGP layer - which is all of (a), (b), (d) and (e), and none of which
requires straying into IPsec internals or into comparison with other
mechanisms. What cannot be analysed at that layer is declared in the
applicability section of issue (5) rather than attempted in Section 5. RFC
4301 and RFC 7296 are already referenced and carry the mitigations to point
at.

[Linda] Those issues have been largely addressed by the earlier changes. We have already made the RR/controller trust model explicit, required authenticated and integrity-protected BGP sessions, separated deployment policy from BGP protocol validation, and clarified that the Rekey Counter is opaque to BGP and handled by the IPsec implementation. We will revise Section 5 to reflect those decisions consistently, add the confidentiality requirement for UPDATEs carrying sensitive keying material, and state the wire-checkable Node ID origin constraint separately from out-of-band authorization policy.

1839 6.  IANA Considerations
1840 6.1.  SD-WAN Overlay SAFI

1842   IANA has assigned SAFI = 74 as the SD-WAN SAFI.

1846   IANA is requested to assign a type from the BGP Tunnel Encapsulation
1847   Attribute Tunnel Types registry

1856   IANA is requested to assign the following sub-Types in the BGP Tunnel
1857   Encapsulation Attribute Sub-TLVs registry

<major> The IANA sections do not describe the registries as they actually
stand. All the code points this document "requests" were registered years ago
against previous draft versions, under different names. Many names differ, and
references are outdated.

These are FCFS registrations, not RFC 7120 early allocations - the
tunnel-type registry is FCFS throughout and the sub-TLV range 64-125 is FCFS
- so they carry no TEMPORARY marker and will not expire. There is nothing to
renew, but there is a great deal to correct. Section 6.1 reports a completed
action but not the registered name and does not ask for it to be corrected;
Sections 6.2 and 6.3 request assignments that already exist.

Please rewrite Sections 6.1 to 6.3 as update requests, one sub-section per
registry, each stating explicitly the current registry contents, the new
Description string, and the new Reference (this RFC, with the correct
section). Note that Section 6.1's own heading calls SAFI 74 the "SD-WAN
Overlay SAFI" while the registry calls it "SD-WAN Capabilities" and the body
calls it "the SD-WAN SAFI" - three names in one sub-section, and the heading
names the wrong one of the two route types (issue (4)). Settle the term
first, then write the request. For Section 6.3, for example: "IANA has
previously assigned the following values in the 'BGP Tunnel Encapsulation
Attribute Sub-TLVs' registry with a reference to
draft-ietf-idr-sdwan-edge-discovery-04. IANA is requested to update the
Description and Reference for these values as follows: ..." and give the
table. Do the same for SAFI 74 and tunnel type 25. If the sub-sub-TLV
question at line 378 is resolved by making 66 a sub-sub-TLV, this is also
where the request to return code point 66 goes. And if the sub-TLV range
question at line 929 is resolved by moving to 128-255, Section 6.3 changes
shape entirely - so please settle those two before rewriting Section 6.

[Linda] We have already settled two related points: code point 66 will be returned and redefined as an Extended Port Sub-Sub-TLV, and we are keeping the existing 64–70 Sub-TLV assignments rather than moving them to the extended-length range. We will now rewrite Sections 6.1–6.3 as IANA update requests, using one consistent name for SAFI 74 and updating the existing Description and Reference fields instead of requesting new assignments.


1885   IANA is requested to create a new registry titled "SD-WAN Extended
1886   Port Encapsulation Types" under the BGP Tunnel Encapsulation Group.
1888      Value   Type Description            Reference
1889      -----   -----------------------     -------------
1890       0      Reserved                    This document
1891       1      GRE                         This document
1892       2      VXLAN                       This document
1893       3~255  Reserved for future

1902       0      Reserved                    This document
1903       1      Wired                       This document
1904       2      WIFI                        This document
1905       3      LTE                         This document
1906       4      5G                          This document
1907       5~255  Unassigned
1908           255    Reserved for Experimental Use

<major> The issues here apply for other similar sections as well:

   1) No registration policy for Section 6.5, 6.6 or 6.7. RFC 8126 requires
      one. Without it IANA cannot operate the registry.

   2) Sections 6.6 and 6.7 define 5-255 as Unassigned and then 255 as
      Reserved for Experimental Use - overlapping and contradictory, and the
      indentation suggests the second line was meant to be a sub-range of
      the first. A single value for Experimental Use is also an odd choice;
      if experimental values are wanted, a small range is conventional. I
      would ask whether they are needed at all here: these are three small,
      slow-moving enumerations with no plausible pressure on the space, and
      reserving the top of each range for Standards Action would be the
      better hedge.

   3) Section 6.5 says "Reserved for future" where it means Unassigned - a
      Reserved range cannot be allocated at all, which is presumably not the
      intent.

   4) Section 6.4's "Values 2-255 are reserved for future assignments" is
      wrong for a 2-octet field. The Route Type field is 2 octets (lines 469
      and 482), so the range is 2-65535.

   5) No reference column pointing at the defining section in any of the
      four new registries, and no change controller stated. Registry entries
      should point at the section that defines the item.

   6) Two registries are missing entirely: the NAT Type values (Section
      2.3.6, values 1-7, closed by normative text with no registry - see the
      comments at lines 1090 and 1112), and the Extended Port Sub-Sub-TLV
      Types namespace (see the comment at line 378).
[Linda] Agree. We will clean up all of the new IANA registries consistently: add an RFC 8126 registration policy and section references, correct Reserved versus Unassigned ranges and the Route Type range, and remove the overlapping value 255 definitions. We will also add the missing NAT Type and Extended Port Sub-Sub-TLV Type registries, consistent with the earlier changes.


1925 7.  References

1927 7.1.  Normative References

<major> Some updates are required for the normative references.

Currently normative, but should be perhaps informative? [MEF70.1] and
[MEF70.2], used only to say what an SD-WAN is with nothing in the encodings,
procedures or anything in the specification depending on them.

[RFC4456], which is normative and but unused - please add it as a reference
to where RR procedures are specified.

Currently informative, but should be normative: [RFC8221] and [RFC4835].
But then we have a chain of obsoletion to deal with RFC 4835 -> RFC 7321 ->
RFC 8221 - this needs to be aligned. And check if the IANA IKEv2 transform
registries and RFC 7296 instead should be normative.

Also [RFC5903] and [RFC5114], seem normative. However, RFC 5903 and RFC 5114
are both Informational, so making them normative creates downrefs. There may
be better references but you will need to check with security folks.

RFC 5925 is missing and normative.

draft-ietf-bess-bgp-sdwan-usage is also normative and since it is in RFC Ed
Q, it is not an issue - it just needs to be called out as a downref.

[Linda] Agree. We will update the reference classifications accordingly: move MEF70.1/70.2 to Informative, add RFC 4456 where RR procedures are referenced, make RFC 5925 normative, and use RFC 7296 plus the IANA IKEv2 transform registries as the normative basis for algorithm identifiers. RFC 4835 will be removed, RFC 8221 retained as informative algorithm-selection guidance, and the RFC 5903/RFC 5114 downref question will be checked with the Security review. The BESS SD-WAN document will also be identified appropriately as a normative downref.


1998 7.2.  Informative References

<minor> Unused references, RFC 1997, RFC 4659, RFC 4761, RFC 4762, RFC 5701,
RFC 6793, RFC 7018 and RFC 8092 - check if you really forgot to use them or
delete them. These were all warnings from idnits that seem to have been
ignored.

And then [Secure-EVPN], is not used but instead [draft-ietf-bess-secure-evpn-02]
is - please fix this. I don't think this reference is really needed - it can
use the extension provided by it but please avoid adding "hooks" to unnecessary
documents.
[Linda] Agree. We will remove the unused references unless they are actually cited by the revised text, and correct the Secure-EVPN citation inconsistency. If the Secure-EVPN reference is not needed by the final procedures, we will remove it rather than retain an unnecessary dependency.

<EoRv29>