Re: [Rift] AD Review of draft-ietf-rift-rift-16 (4.2.3.3)
Jordan Head <jhead@juniper.net> Mon, 13 March 2023 14:24 UTC
Return-Path: <jhead@juniper.net>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7AD4EC15C522; Mon, 13 Mar 2023 07:24:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.797
X-Spam-Level:
X-Spam-Status: No, score=-2.797 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net header.b="u7vGdY52"; dkim=pass (1024-bit key) header.d=juniper.net header.b="HMuHkmnB"
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6SZ33lBB5v3T; Mon, 13 Mar 2023 07:24:40 -0700 (PDT)
Received: from mx0b-00273201.pphosted.com (mx0b-00273201.pphosted.com [67.231.152.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BAAFFC159823; Mon, 13 Mar 2023 07:24:27 -0700 (PDT)
Received: from pps.filterd (m0108161.ppops.net [127.0.0.1]) by mx0b-00273201.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32DA8hbi032319; Mon, 13 Mar 2023 07:24:26 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=3GlOJJzCM0f5Bh92r2CcfVpyMuzPw/ISbRBMduIXc6o=; b=u7vGdY52BSs+CZhqTA0ui3etUSIovc9vdYPRVuv1khH7p9gZXttJ9ffn69Hr340mdcyZ JAjREnY6GxofTDraMWiMRmWeFNIpZA7d8+CXZDYEKWJnR9SBL2XVDTjV5TNX9arkPZ5b PJNAytWxD0LGreHynJnRr7mFPIrCqjYdPuoCfDbdFTo8GyLY92izoMuD+uqCZC4iKi7N egPUyMX7QGmfdkOeuDSAgCrphXiZwaRW/kbSDhKXC7VaB/oJswdyrwboBtbH7Z4ETCGl Z42FkRymEblODU+rMoAZRy54wHawLf6QEw/XMvXajEPW4LeWarDqWceAd0d58ErFpBY8 UA==
Received: from mw2pr02cu002-vft-obe.outbound.protection.outlook.com (mail-westus2azlp17013039.outbound.protection.outlook.com [40.93.10.39]) by mx0b-00273201.pphosted.com (PPS) with ESMTPS id 3pa1tkgfss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 Mar 2023 07:24:26 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Icb51m2QuXyswIjmhyPZxnDiFv7F5jr5ZLk1LG1R2errJHcNn5l2BA1Ls13ig45vOIxM2B9N3+S/8QRyb9UkrgA2A1u4DfhyDGImQOViKc3mPsgE4e6bcIWTSijoF/MgT5K/ZO4vfe8Pahx5mdjSz65BfEK5sZUIHm1EOLoNEYCpDHW4IxROKOC2wcD9FF48sc/oPNXXy07QWvSynwXT9vRYxvNOl5qeynPVuu4d6MQJuZKQmsuNYfUBHG2rnK7N+7YX+4kMUpy0Ahyz0H+xHufcVm/JD1Alqt6uw/yRvKrU+njGgxDixuDCIoZDOQNePEGZ9yIqoPOmV4QtQlBoBA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=3GlOJJzCM0f5Bh92r2CcfVpyMuzPw/ISbRBMduIXc6o=; b=XLxujCK/SqJz7m3mnuEqHufYkvsfAuZ2cZ5CX9d4lvvE97Lxv/4g2R6lSRqYA7/Ha51jkd64Ilxq6uh9W7l6qBOr3ln5uoNDvF6beK23MDczptao5uwyG6YJVQdzP5B2ujSDCsFpmGYZ3lolcoUaZ3XuIWgrCXsQo7whKNR6VHikcQaxcSdobxTW1ZMlcO6qGnJ4S1uPv88ln8cPKCXgTirwViBfAb7l1CDMrmGLQmU8axE2lwuk6lTls9s0wCWDXFhyWXmY+vuKrssSPajla8plntvvTXyvSJ8CQ0jvgerjMqIckfyrnSO/yEuML47RKLM7R4ldHz3SY/kUz/mf4Q==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3GlOJJzCM0f5Bh92r2CcfVpyMuzPw/ISbRBMduIXc6o=; b=HMuHkmnBXcbYT4GRbFx1WcNjmAK0MZkvt7e7eB0vym/PFudZgy7B/lqEjNNuRC8jCZztDlJpir9oP6d+tHgX1B6ESVr2EZEdgdbKO3VEfH2bfAo2v1eiedxhrde8qIX0U51REyspn8s7DHJAKbNGBhUjs4XB0CjTuERWN57hDRU=
Received: from BL0PR05MB5362.namprd05.prod.outlook.com (2603:10b6:208:67::16) by DS0PR05MB9174.namprd05.prod.outlook.com (2603:10b6:8:c6::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.26; Mon, 13 Mar 2023 14:24:22 +0000
Received: from BL0PR05MB5362.namprd05.prod.outlook.com ([fe80::9aab:bbdf:73ae:82e6]) by BL0PR05MB5362.namprd05.prod.outlook.com ([fe80::9aab:bbdf:73ae:82e6%7]) with mapi id 15.20.6178.024; Mon, 13 Mar 2023 14:24:22 +0000
From: Jordan Head <jhead@juniper.net>
To: Tony Przygienda <tonysietf@gmail.com>, Alvaro Retana <aretana.ietf@gmail.com>
CC: "draft-ietf-rift-rift@ietf.org" <draft-ietf-rift-rift@ietf.org>, "rift-chairs@ietf.org" <rift-chairs@ietf.org>, "rift@ietf.org" <rift@ietf.org>, "EXT-zhang.zheng@zte.com.cn" <zhang.zheng@zte.com.cn>
Thread-Topic: [Rift] AD Review of draft-ietf-rift-rift-16 (4.2.3.3)
Thread-Index: AQHZQHRFnFa6kJEM5k2jJV2b1l71bK7bcQmAgB06AYA=
Date: Mon, 13 Mar 2023 14:24:22 +0000
Message-ID: <0F46B279-68F0-42C6-92E5-C851B39169AE@juniper.net>
References: <CAMMESsysz8Yk7e2Snzq7Rivihfv50=F=ks3X_cAUsFKoaaSCiQ@mail.gmail.com> <CA+wi2hPnke3z8Mf0gwnmZw7tGktSHsk_Zzo1bgzHf0MuQH=JLg@mail.gmail.com>
In-Reply-To: <CA+wi2hPnke3z8Mf0gwnmZw7tGktSHsk_Zzo1bgzHf0MuQH=JLg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.70.23021201
msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=true; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ContentBits=0; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ActionId=59e3786c-da4f-4a99-9c5f-6a2e7b2b3505; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2023-03-13T14:21:19Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Method=Standard; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Name=Juniper Business Use Only;MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=true;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BL0PR05MB5362:EE_|DS0PR05MB9174:EE_
x-ms-office365-filtering-correlation-id: 43033952-89bf-4333-5acc-08db23cea3e3
x-ld-processed: bea78b3c-4cdb-4130-854a-1d193232e5f4,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: kJ3RAk/MNxTdZ/OrTx8pgZHBVO0bR0RK7EiN51h0uDoIzepDammKN+TgUrLebwipPNv1xqz5U1C8KT6tt4KXjAs2G9j6MMfJPqRQudGzBfL0ZekYJHnG9ReIM9y+pDPtmaCHkgIpQcxMA6tMYDiMi0wZeIqa4cIAnX9EVtQUlmXT7rUeNG7q1ssbMB82mi/wBU/fA/6wf5wru/HzdsrmVKJFC3c1KY6Vr0xCQQn9JAMs/O2FlRL4QqfzQYwKWRvCRzsIvMPEhwSNHvkH4H5Tqx/7iqjfLjB4TSFbqBFLALBLnCzsQeyg1LdPCkhVMW5uXKVvEgQ3inl6uOJAY+/Z9tYXwR2s+0x/FLHI5+h9yJ/PkRP3u6NlPE2wojG5ThJS+98vYjq/v85rY840BYbWsYliL1xfSGiMUVxO9Cl9ZtwDY5FVjldm0dphMHazC+AoT4MLYynK48zYfY5J7IZGph1AQZWd/pWn8vsBhDgyIH98Z1egMJdHBYzgfVGhQuFZSIy0lDyAUNU25cIGQMwEf1s2mQMO7sIVTjt17FBVD+JHieY4dQx6hLV3AzdavEUaNQFS2zrClkL29kULzMfqxnyDnzpyJ+q6Sm+WeKS7aQ71s6gYI2fWpJExnJEoBkUzAwdeI8ihm5QLbxOSf6i3Zf+XtpF+4xwgMXOM34d2b/7GTW2mTGbFa8STG+VdTrlZLZH5Tk/YAEAhI15pxpyx5ecayBHlLyn46vnnDMdaK1Q=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR05MB5362.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(376002)(366004)(346002)(136003)(396003)(451199018)(38070700005)(86362001)(33656002)(122000001)(38100700002)(36756003)(8936002)(2906002)(41300700001)(9326002)(30864003)(5660300002)(54906003)(4326008)(186003)(6506007)(26005)(6512007)(110136005)(316002)(83380400001)(53546011)(2616005)(66446008)(66556008)(91956017)(6486002)(478600001)(66476007)(66946007)(76116006)(8676002)(71200400001)(64756008)(45980500001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: XrvMZ4XDI36pia8qaQbLfm+redn+OawBj0k1KqqhwX3ixlc/vZhiYVnyR/i4tZvgALEkelzpqge3XXmoYxDaqVDahaGjPIbxoItpMXg2sfbc/KGtFkhI/PnlP5pqWCTDss22STjxBgS3TuXEkSvOUxv3bktJDAhwxBtt4RrISisgiUmX661EtvYxSjOuLpnB9DGya7HhmUsUNk4+U1awxSmrTfCJq5Mfv3q5j4UP4DuGTAZLLSbqXdy9bTRQEnDOi1f/gWULIVZFPeCASzVLM72sDgtZX+HJJ72hh5HUW8qei03RqCMEZwwk6cHsSw0tNhrEDA1FUxQ6if43nxmnDw/ROKXdJP8s3R/iCq1deukJgfVnuSa07GdMzqgVLWrukrwpEhGzVVGpZTlFLnlfIeKwlOAfb2uvPQ4Y/mzEDuIrZwehGj3x1q11XUD1mDVgxhcwSeN51NvDZoUANM01NZRLnxMnmhNUJNBW6Lpw+lflCR7yr/fVozsojJaRD3lWj2IILp3IYAfn0JCR72gXwJ6uRtQ4p2JXOYfTIp+GpiIhYSAOoZ4eyNTsNuCxPFEy3VgvcpNqg/BtoKDqGfu4hh6GyMwCkJCTAf2JPsGyV+KvvijJHYpP35Ac0ziaaxJl11VgGLLB4UcMKpisqMbOWDtIvu1QaTQE6opDUxvz3l1tCzENDJUkxPXoU7XlKuOsqJV9Sfs4i+BjUDMT/1fNACbD/6zrb69L0W6RmLji4oIdhsKksPfWU78y21zgrVxi4FOa1z+jO77PzqFE/PO+NHzjZ3T2s4/LJuVhzHhB0XWu+Sv/qutSxXv/vTWdy4x2CZcEAtG/qIKXFy6px2v/lQpHiHy8LQGc8SUg1wA/Ox3ShOEM4dO86ZN3KhXQihdNevqkL28xi9eFbbxNkbsExNahwjGsBZGR+wxdM5axg6jsLxhI5b5z6HZ3w+oY2vXYGeWMPJWemHrDNwFTqbRrR9qpVIqWFeo2ktCQ05MC8UBIkX+4J3TNLfNaGo8oI6eG4y+IlEZPgs6iD0jrcCykaUbo9uz70NmV3PcesnWwThijySsDbYrpqCJhOuaMTE0IxgL1iW6jdwLt23IValDvUCqaxgy+UXTViFMPmiTE+qORcfV1homRcHYtpxDbsqUftAEAFA/4fetTvRalKGc3WGitWoc8EqSpQYMovSoShFl0TcPdsEJISJn5424EKEnzoWYL5I3dJjjzYlaXJ5FGMkwSReO0syR/7MOIgVon7h5gGv2z5xg5Rg/J9p9TgW7nsJCWgH9coSGKsoZN61uXYwnrOVJBUqGH+rjnOCuIWl/ZgnE97OP6J2qt1zIP2rT5gts1mUOb2UMF7JAu0GaxzEfkwOFl9kMbp7fSAfzYfdjRI3QR31pWAzwKG75+AsTUCfg+5H4oWUFi3refRTb0QwiUx5ap9R1cxBh2zl19alU7PijYDegcnhCxp6IAm96+m8bv6IYwUUNYCscOn1LdTihxwlyEpCqX+mARazUfcyGkXyiBMf2m6RwtNXo/7kZxGPiF/pVXtHNxE3ybEMx6Tk+Kvd9jgo3baDmzxWquFwH2ZFxTfw72JKuiKSwjx5sG
Content-Type: multipart/alternative; boundary="_000_0F46B27968F042C692E5C851B39169AEjunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BL0PR05MB5362.namprd05.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 43033952-89bf-4333-5acc-08db23cea3e3
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Mar 2023 14:24:22.2517 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: SPr+MiBsvcZvX012KXTGeK2kshpWTLS6TThzCDw3ogUzsE/V5J4OGXkwvoL8RTQbhC1j3VEbnFWvQj9JQ8/eyQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR05MB9174
X-Proofpoint-GUID: qRdsRPW3g34tGFu_UCtQtfjVdi_Q4ZnY
X-Proofpoint-ORIG-GUID: qRdsRPW3g34tGFu_UCtQtfjVdi_Q4ZnY
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-13_07,2023-03-13_02,2023-02-09_01
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 mlxscore=0 malwarescore=0 suspectscore=0 phishscore=0 mlxlogscore=999 spamscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 clxscore=1015 bulkscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303130114
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/shhukR8ngMyCa3DR8qAxPIbm-Rw>
Subject: Re: [Rift] AD Review of draft-ietf-rift-rift-16 (4.2.3.3)
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Mar 2023 14:24:44 -0000
Hi Alvaro, My comments inline as jhead>> Thanks From: Tony Przygienda tonysietf@gmail.com<mailto:tonysietf@gmail.com> Date: Wednesday, February 22, 2023 at 3:05 PM To: Alvaro Retana aretana.ietf@gmail.com<mailto:aretana.ietf@gmail.com> Cc: Jordan Head jhead@juniper.net<mailto:jhead@juniper.net>, draft-ietf-rift-rift@ietf.org<mailto:draft-ietf-rift-rift@ietf.org> draft-ietf-rift-rift@ietf.org<mailto:draft-ietf-rift-rift@ietf.org>, rift-chairs@ietf.org<mailto:rift-chairs@ietf.org> rift-chairs@ietf.org<mailto:rift-chairs@ietf.org>, rift@ietf.org<mailto:rift@ietf.org> rift@ietf.org<mailto:rift@ietf.org>, EXT-zhang.zheng@zte.com.cn<mailto:EXT-zhang.zheng@zte.com.cn> zhang.zheng@zte.com.cn<mailto:zhang.zheng@zte.com.cn> Subject: Re: [Rift] AD Review of draft-ietf-rift-rift-16 (4.2.3.3) [External Email. Be cautious of content] Hi! Just 4.2.3.3. Alvaro. 2404 4.2.3.3. Flooding 2406 The mechanism used to distribute TIEs is the well-known (albeit 2407 modified in several respects to take advantage of Fat Tree topology) 2408 flooding mechanism used in link-state protocols. Although flooding 2409 is initially more demanding to implement it avoids many problems with 2410 update style used in diffused computation by distance vector 2411 protocols. However, since flooding tends to present a significant 2412 burden in large, densely meshed topologies (Fat Trees being 2413 unfortunately such a topology) RIFT provides as solution a close to 2414 optimal global flood reduction and load balancing optimization in 2415 Section 4.2.3.9. [] "well-known...flooding mechanism used in link-state protocols. ...avoids many problems with...distance vector protocols." Please don't assume knowledge and remove references/comparisons to/with other protocols. jhead>> See next comment. [] "close to optimal global flood reduction" I might have to read §4.2.3.9, but this sounds like marketing to me. jhead>> Between the comparisons to other protocols and the "marketing" component, I've removed the first paragraph of the Flooding section. 2417 As described before, TIEs themselves are transported over UDP with 2418 the ports indicated in the LIE exchanges and using the destination 2419 address on which the LIE adjacency has been formed. For unnumbered 2420 IPv4 interfaces same considerations apply as in other link-state 2421 routing protocols and are largely implementation dependent. [] "For unnumbered IPv4 interfaces same considerations apply as in other link-state routing protocols and are largely implementation dependent." Assumes knowledge of other protocols. Besides that, the sentence doesn't say much by pointing to considerations that are "largely implementation dependent". jhead>> Removed. 2423 TIEs are uniquely identifed by `TIEID` schema element. `TIEID` space 2424 is a total order achieved by comparing the elements in sequence 2425 defined in the element and comparing each value as an unsigned 2426 integer of corresponding length. They contain a `seq_nr` element to 2427 distinguish newer versions of same TIE. TIEIDs also carry 2428 `origination_time` and `origination_lifetime`. Field 2429 `origination_time` contains the absolute timestamp when the TIE was 2430 generated. Field `origination_lifetime` carries lifetime when the 2431 TIE was generated. Those are normally disregarded during comparison 2432 and carried purely for debugging/security purposes if present. They 2433 may be used for comparison of last resort to differentiate otherwise 2434 equal ties and they can be used on fabrics with synchronized clock to 2435 prevent lifetime modification attacks. [nit] s/identifed by `TIEID`/identified by the `TIEID` jhead>> Fixed. [major] "total order achieved by comparing the elements in sequence" When comparing, which value is considered better/more recent? jhead>> I've added pseudo code for TIE ordering in a new figure named "TIE Ordering", it should make things much clearer. It is normative, and I will refer to it as such as part of some of your other comments. I pasted it below, hopefully e-mail doesn't screw up the indentation, but I should have -17 published by the time you read this: for each TIEPacket: TIEHeader = TIEPacket.TIEHeader TIEElement = TIEPacket.TIEElement seq_nr = TIEHeader.seq_nr TIEID = TIEHeader.TIEID direction = TIEID.direction # System ID originator = TIEID.originator # TIETypeType tietype = TIEID.tietype tie_nr = TIEID.tie_nr if X.direction > Y.direction: return X.direction else if X.direction < Y.direction: return Y.direction else if X.originator > Y.originator: return X.originator else if X.originator < Y.originator: return Y.originator else: if X.tietype == Y.tietype: if X.tie_nr == Y.tie_nr: if X.seq_nr == Y.seq_nr: X.lifetime_left = X.remaining_lifetime - time since TIE was received Y.lifetime_left = Y.remaining_lifetime - time since TIE was received if absolute_value_of(X.lifetime_left - Y.lifetime_left) <= common.lifetime_diff2ignore: return equal else: return TIE with largest lifetime_left else: return X.seq_nr compared to Y.seq_nr else: return X.tie_nr compared to Y.tie_nr else: return X.TIEType compared to Y.TIEType [minor] "They contain a `seq_nr` element to distinguish newer versions of same TIE. TIEIDs also carry `origination_time` and `origination_lifetime`." TIEID doesn't contain any of that: /** Unique ID of a TIE. */ struct TIEID { /** direction of TIE */ 1: required common.TieDirectionType direction; /** indicates originator of the TIE */ 2: required common.SystemIDType originator; /** type of the tie */ 3: required common.TIETypeType tietype; /** number of the tie */ 4: required common.TIENrType tie_nr; } (python.immutable = "") jhead>> Fixed But the TIEHeader does: /** Header of a TIE. */ struct TIEHeader { /** ID of the tie. */ 2: required TIEID tieid; /** Sequence number of the tie. */ 3: required common.SeqNrType seq_nr; /** Absolute timestamp when the TIE was generated. */ 10: optional common.IEEE802_1ASTimeStampType origination_time; /** Original lifetime when the TIE was generated. */ 12: optional common.LifeTimeInSecType origination_lifetime; } [minor] The grammar could be better: s/ TIEIDs also carry `origination_time` and `origination_lifetime`. Field `origination_time` contains the absolute timestamp when the TIE was generated. Field `origination_lifetime` carries lifetime when the TIE was generated. / The TIEHEader can also carry an `origination_time` that contains the absolute timestamp of when the TIE was generated, and an `origination_lifetime` to indicate the original lifetime when the TIE was generated. jhead>> Reworked, see following comments. [major] "Those are normally disregarded during comparison..." Does this refer to the text in the second sentence ("`TIEID` space is a total order achieved by comparing the elements in sequence...") or to some other comparison. Also, this makes me think that you have been referring to the TIEHeader (and not the TIEID) all along -- is that correct? jhead>> Removed the bits about comparison. [major] "normally disregarded during comparison...[but]...may be used for comparison of last resort" Are they used or not? The use of "normally" doesn't help because it immediately points are possible exceptions... If used, how are they compared? Which one is better/more recent? jhead>> Removed the bits about being used in comparison, practically speaking they're not applicable here. Our new TIE Ordering reflects this. [minor] "can be used on fabrics with synchronized clock" §4.3.4 says that RIFT assumes that all nodes are sync'ed, so "fabrics with synchronized clock" would mean all the time, right? jhead>> Reworked this a bit by hinting toward the schema and being a more specific about the synchronization aspect: The TIEHEader can also carry an `origination_time` schema element (for fabrics that utilize precision timing) which contains the absolute timestamp of when the TIE was generated and an `origination_lifetime` to indicate the original lifetime when the TIE was generated. If carried, they can be used for debugging or security purposes (e.g. to prevent lifetime modification attacks). [major] "can be used...to prevent lifetime modification attacks" "can be used" or "are used"? It seems (from a quick read of §4.4.3), that neither are used -- but that the remaining lifetime (remaining_lifetime) is. Is that correct? Looking closer, I noticed that the origination_lifetime and the remaining_lifetime come from the same variable: 12: optional common.LifeTimeInSecType origination_lifetime; ... 2: required common.LifeTimeInSecType remaining_lifetime; But I couldn't figure out where the LifeTimeInSecType is decremented as there's no TIE FSM. Where is that specified? jhead>> The new TIE Ordering bits we state: "lifetime_left" = "remaining_lifetime" - time since the TIE was received. The exact proceudure to decrement is an implementation specific detail. This is the related text in the Security Considerations: 5755 7.4. Lifetime 5757 Traditional IGP protocols are vulnerable to lifetime modification and 5758 replay attacks that can be somewhat mitigated by using techniques 5759 like [RFC7987]. RIFT removes this attack vector by protecting the 5760 lifetime behind a signature computed over it and additional nonce 5761 combination which makes even the replay attack window very small and 5762 for practical purposes irrelevant since lifetime cannot be 5763 artificially shortened by the attacker. [major] "Traditional IGP protocols are vulnerable...somewhat mitigated by using techniques like [RFC7987]." Remove all mentions of other protocols! Also, the reference is irrelevant because it points to an IS-IS specification. jhead>> Removed. [minor] s/lifetime/remaining lifetime jhead>> Fixed. [] s/which makes even the replay attack window very small and for practical purposes irrelevant since lifetime cannot be artificially shortened by the attacker./which results in the inability of an attacker to artificially shorten the remaining lifetime. jhead>> Fixed. 2437 Remaining lifetime counts down to 0 from origination lifetime. TIEs 2438 with lifetimes differing by less than `lifetime_diff2ignore` MUST be 2439 considered EQUAL (if all other fields are equal). This constant MUST 2440 be larger than `purge_lifetime` to avoid retransmissions. [] It would be very nice if the naming and its use was consistent. For example, you mentioned the "origination_lifetime" above, but "origination lifetime" here. It makes it really hard to search and to keep track of where things are specified. jhead>> Fixed. I'll look for more inconsistencies and address them. [major] "This constant MUST be larger than `purge_lifetime` to avoid retransmissions." They are both *constants*, which intuitively mean that they have a set value. Note that neither is listed in Appendix C.1 (Configurable Protocol Constants), should they be? jhead>> Most of Appendix C's items are already in the schema. I've added the couple that weren't there and removed Appendix C per Tony's comment. 2442 All valid TIE types are defined in `TIETypeType`. This enum indicates 2443 what TIE type the TIE is carrying. In case the value is not known to 2444 the receiver, the TIE MUST be re-flooded. This allows for future 2445 extensions of the protocol within the same major schema with types 2446 opaque to some nodes with some restrictions. [] Note my comments before about consistency related to TIE Types. Juniper Business Use Only
- [Rift] AD Review of draft-ietf-rift-rift-16 (4.2.… Alvaro Retana
- Re: [Rift] AD Review of draft-ietf-rift-rift-16 (… Tony Przygienda
- Re: [Rift] AD Review of draft-ietf-rift-rift-16 (… Jordan Head