# US 10,771,318 B1 · High availability on a distributed networking platform

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,318 B1
- Document ID: US10771318B1
- Status: Granted
- Kind: B1
- Application number: 16/386,108
- Filed: 2019-04-16
- Granted: 2020-09-08
- Earliest claimed: 2018-10-24
- Assignees: VMware, Inc.
- Applicants: VMware, Inc.
- Inventors: Kiron Haltore; Srinivas Srikanth Podilla; Vivek Kalyanaraman
- Web page: https://patentgrep.com/patent/US10771318B1

## CPC

- H04L 41/0668: by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
- H04L 43/0817: by checking functioning
- H04L 41/0803: Configuration setting
- H04L 41/0816: the condition being an adaptation, e.g. in response to network events
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 61/10: of different types
- H04L 61/103: across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
- H04L 61/58: Caching of addresses or names
- H04L 2101/622: Layer-2 addresses, e.g. medium access control [MAC] addresses
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Providing high availability in a distributed networking platform includes detecting that an original primary service engine is unavailable, wherein: the original primary service engine and a plurality of secondary service engines are configured to provide one or more network applications associated with a virtual Internet Protocol (VIP) address; the original primary service engine and the plurality of secondary service engines are in active-active configuration mode; and the original primary service engine is configured to respond to Address Resolution Protocol (ARP) requests designating the VIP address. Additionally, providing high availability in a distributed networking platform further includes determining that a controller is unavailable; and configuring a selected secondary service engine as the next primary service engine.

## Claims

### Claim 1

A method comprising:
detecting that an original primary service engine is unavailable, wherein:
the original primary service engine and a plurality of secondary service engines are configured to provide one or more network applications associated with a virtual Internet Protocol (VIP) address;
the original primary service engine and the plurality of secondary service engines are in active-active configuration mode; and
the original primary service engine is configured to respond to Address Resolution Protocol (ARP) requests designating the VIP address;
determining that a controller is unavailable; and
configuring a selected secondary service engine as a next primary service engine.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, at the next primary service engine, traffic associated with the VIP address; and
forwarding, by the next primary service engine, the traffic associated with the VIP address to another secondary service engine among the plurality of secondary service engines.

### Claim 3 (depends on 1)

The method of claim 1, wherein the selected secondary service engine is selected according to an ordered priority list.

### Claim 4 (depends on 1)

The method of claim 1, wherein the selected secondary service engine is selected according to an identifying characteristic.

### Claim 5 (depends on 1)

The method of claim 1, wherein configuring the selected secondary service engine as the next primary service engine includes sending, by the selected secondary service engine, heartbeats indicating that the selected secondary service engine has become the next primary service engine.

### Claim 6 (depends on 1)

The method of claim 1, wherein configuring the selected secondary service engine as the next primary service engine includes sending, by the selected secondary service engine, to a neighboring networking device a gratuitous Address Resolution Protocol (ARP) to update an ARP cache.

### Claim 7 (depends on 1)

The method of claim 1, wherein configuring the selected secondary service engine as the next primary service engine includes responding, by the selected secondary service engine, to an ARP request designating the VIP address.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
determining that a previous primary service engine has become available; and
reconfiguring the next primary service engine to be a secondary service engine.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
determining that a previous primary service engine has become available; and
reconfiguring the next primary service engine to be a secondary service engine, including:
stopping responding to any new ARP requests associated with the VIP address; and
sending a gratuitous ARP with an empty MAC address to a neighboring networking device.

### Claim 10

A system comprising:
one or more processors configured to:
detect that an original primary service engine is unavailable, wherein:
the original primary service engine and a plurality of secondary service engines are configured to provide one or more network applications associated with a virtual Internet Protocol (VIP) address;
the original primary service engine and the plurality of secondary service engines are in active-active configuration mode; and
the original primary service engine is configured to respond to Address Resolution Protocol (ARP) requests designating the VIP address;
determine that a controller is unavailable; and
configure a selected secondary service engine as a next primary service engine; and
one or more memories coupled to the one or more processors and configured to provide the one or more processors with instructions.

### Claim 11 (depends on 10)

The system of claim 10, wherein the one or more processors are further configured to:
receive, at the next primary service engine, traffic associated with the VIP address; and
forward, by the next primary service engine, the traffic associated with the VIP address to another secondary service engine among the plurality of secondary service engines.

### Claim 12 (depends on 10)

The system of claim 10, wherein the selected secondary service engine is selected according to an ordered priority list.

### Claim 13 (depends on 10)

The system of claim 10, wherein the selected secondary service engine is selected according to an identifying characteristic.

### Claim 14 (depends on 10)

The system of claim 10, wherein to configure the selected secondary service engine as the next primary service engine includes to send, by the selected secondary service engine, heartbeats indicating that the selected secondary service engine has become the next primary service engine.

### Claim 15 (depends on 10)

The system of claim 10, wherein to configure the selected secondary service engine as the next primary service engine includes to send, by the selected secondary service engine, to a neighboring networking device a gratuitous Address Resolution Protocol (ARP) to update an ARP cache.

### Claim 16 (depends on 10)

The system of claim 10, wherein to configure the selected secondary service engine as the next primary service engine includes to respond, by the selected secondary service engine, to an ARP request designating the VIP address.

### Claim 17 (depends on 10)

The system of claim 10, wherein the one or more processors are further configured to:
determine that a previous primary service engine has become available; and
reconfigure the next primary service engine to be a secondary service engine.

### Claim 18 (depends on 10)

The system of claim 10, wherein the one or more processors are further configured to:
determine that a previous primary service engine has become available; and
reconfigure the next primary service engine to be a secondary service engine, including to:
stop responding to any new ARP requests associated with the VIP address; and
send a gratuitous ARP with an empty MAC address to a neighboring networking device.

### Claim 19

A computer program product, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:
detecting that an original primary service engine is unavailable, wherein:
the original primary service engine and a plurality of secondary service engines are configured to provide one or more network applications associated with a virtual Internet Protocol (VIP) address;
the original primary service engine and the plurality of secondary service engines are in active-active configuration mode; and
the original primary service engine is configured to respond to Address Resolution Protocol (ARP) requests designating the VIP address;
determining that a controller is unavailable; and
configuring a selected secondary service engine as a next primary service engine.
