US 11,870,711 B2
Automated network change system
Horia Vlad Balan, Mountain View, CA (US); Zengbin Zhang, Seattle, WA (US); Amin Vahdat, Los Altos, CA (US); Vinay Kumar Bannai, Sunnyvale, CA (US); Alexander Jinhon Lin, San Jose, CA (US); Anvesh Komuravelli, Santa Clara, CA (US); Steven Gribble, Mountain View, CA (US); Andrew DeBock Ferguson, New York, NY (US); Muhammad Mukarram Tariq, San Jose, CA (US); Joon Ong, Cupertino, CA (US); and Alvaro Martinez Echevarria, Mountain View, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Dec. 29, 2022, as Appl. No. 18/091,050.
Application 18/091,050 is a continuation of application No. 17/236,768, filed on Apr. 21, 2021, granted, now 11,575,618.
Application 17/236,768 is a continuation of application No. 16/265,754, filed on Feb. 1, 2019, granted, now 11,018,994, issued on May 25, 2021.
Application 16/265,754 is a continuation of application No. PCT/US2018/064054, filed on Dec. 5, 2018.
Claims priority of provisional application 62/594,990, filed on Dec. 5, 2017.
Prior Publication US 2023/0137493 A1, May 4, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 49/15 (2022.01); H04L 49/25 (2022.01); H04L 41/082 (2022.01); H04L 45/58 (2022.01); H04L 41/084 (2022.01); H04L 41/08 (2022.01)
CPC H04L 49/15 (2013.01) [H04L 41/082 (2013.01); H04L 41/0846 (2013.01); H04L 45/58 (2013.01); H04L 49/25 (2013.01); H04L 41/0886 (2013.01)] 13 Claims
OG exemplary drawing
 
7. A system, comprising:
a data processing apparatus comprising one or more computers; and
a non-transitory memory storage system storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:
receiving a set of first intents, wherein the set of first intents describes a state of a first switch fabric within a set of network elements, the set of network elements including routers and switches;
receiving a set of second intents, wherein the set of second intents describes a state of a second switch fabric, wherein the state of the second switch fabric results from changes applied to the set of network elements;
computing, by an intent translator executing on the data processing system, a set of network operations to perform on the first switch fabric to achieve the second switch fabric, the computing including determining an order in which the network operations in the set of network operations are to be executed, and the set of network operations and the order are determined based on the set of first intents, the set of second intents, and migration logic that defines a ruleset for selecting the network operations in the set of network elements based on the set of first intents and the set of second intents, wherein the set of network operations:
enable control of a subset of non-cluster border routers by a switch controller proxy that can simultaneously control the non-cluster border routers according to controller logic of the first switch fabric and controller logic of the second switch fabric;
performing one or more canary checks to determine whether failures occur in the subset of non-cluster border routers during changes applied to the set of network elements;
in response to determining failures do not occur in the subset of non-cluster border routers during changes applied to the set of network elements:
connecting remaining non-cluster border routers by the switch controller proxy to simultaneously control the non-cluster border routers according to controller logic of the first switch fabric and controller logic of the second switch fabric; and
after enabling control of the non-cluster border routers by the switch controller proxy, migrating cluster border routers from the first switch fabric to the second switch fabric.