# US 9,882,779 B2 · Software version maintenance in a software defined network

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

- Number: US 9,882,779 B2
- Document ID: US9882779B2
- Status: Granted
- Kind: B2
- Application number: 14/661,321
- Filed: 2015-03-18
- Published: 2016-09-22
- Granted: 2018-01-30
- Earliest claimed: 2015-03-18
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Venkata siva N. Amulothu; Nitin Kumar J. Huralikuppi; Ashish Kapur; Vishal Shukla; Saritha Yeddula
- Web page: https://patentgrep.com/patent/US9882779B2

## CPC

- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 41/122: of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
- H04L 41/0859: by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

As disclosed herein a method includes a software defined networking controller identifying an element managed by the controller on which to perform a software version maintenance operation, de-activating the identified element in a software defined network (SDN), ensuring that there is an active backup for the element in the SDN while the identified element is de-activated, initiating the software version maintenance operation on the de-activated identified element, and in response to completion of the software version maintenance operation, re-activating the de-activated identified element in the SDN. A computer system, and a computer program product corresponding to the method are also disclosed herein.

## Claims

### Claim 1

A method comprising:
a software defined networking controller (SDN controller) identifying an element managed by the SDN controller on which to perform a software version maintenance operation, the element in a software defined network (SDN), wherein identifying the element comprises:
responsive to the SDN controller determining that the element has powered up, sending a vendor packet from the SDN controller to the element;
receiving a reply to the vendor packet from the element, the reply identifying a version of a software image installed on the element, the reply identifying an element type for the element selected from a list consisting of a network switch, a router, a VPN, a firewall, a hypervisor, an agent, and appliance, and a load balancer;
determining, using the SDN controller, that the version identified in the reply does not match a required version of the software image identified in a catalog maintained by the SDN controller;
ensuring, using the SDN controller, that there is an active backup for the element in the SDN;
responsive to ensuring that there is an active backup for the element, de-activating, using the SDN controller, the element;
initiating the software version maintenance operation on the element; and
in response to completion of the software version maintenance operation, re-activating, using the SDN controller, the element in the SDN.

### Claim 2 (depends on 1)

The method of claim 1, wherein the software version maintenance operation comprises upgrading a version of a software image installed on the element to a more recent version of the software image.

### Claim 3 (depends on 1)

The method of claim 1, wherein said sending occurs in response to the SDN controller becoming active in the SDN.

### Claim 4 (depends on 1)

The method of claim 1, wherein said sending occurs according to a user-defined schedule accessible to the SDN controller.

### Claim 5 (depends on 1)

The method of claim 1, wherein the element comprises a networking element, and wherein said de-activating comprises:
ensuring that the networking element is removed from a shortest path of an SDN topology; and
ensuring that no flows exist on the networking element.

### Claim 6 (depends on 1)

The method of claim 1, wherein the element comprises a networking element, and wherein the active backup comprises an alternate path devoid of the networking element in an SDN topology.

### Claim 7 (depends on 1)

The method of claim 1, wherein the element comprises a networking element, and wherein said re-activating comprises installing one or more flows onto the networking element.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
before said re-activating, performing a regression test on the element, wherein the regression test verifies that the software version maintenance operation was successful.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
before said reactivating, performing a regression test on the element, wherein the regression test verifies that the software version maintenance operation was successful, and wherein the regression test is specific to the element type of the element.

### Claim 10

A computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising instructions to:
identify, by a software defined networking controller (SDN controller), an element managed by the SDN controller on which to perform a software version maintenance operation, the identified element in a software defined network (SDN), wherein identifying the element comprises:
responsive to the SDN controller determining that the element has powered up, sending a vendor packet from the SDN controller to the element;
receiving a reply to the vendor packet from the element, the reply identifying a version of a software image installed on the element, the reply identifying an element type for the element selected from a list consisting of a network switch, a router, a VPN, a firewall, a hypervisor, an agent, and appliance, and a load balancer;
determining, using the SDN controller, that the version identified in the reply does not match a required version of the software image identified in a catalog maintained by the SDN controller;
ensure, using the SDN controller, that there is an active backup for the element in the SDN;
responsive to ensuring that there is an active backup for the element, de-activate, using the SDN controller, the element;
initiate the software version maintenance operation on the element; and
in response to completion of the software version maintenance operation, re-activate, using the SDN controller, the element in the SDN.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein said instructions to send comprise instructions to send the vendor packet in response to the SDN controller becoming active in the SDN.

### Claim 12 (depends on 10)

The computer program product of claim 10, wherein said instructions to send comprise instructions to send the vendor packet according to a user-defined schedule accessible to the SDN controller.

### Claim 13 (depends on 10)

The computer program product of claim 10, further comprising instructions to: before said reactivating, performing a regression test on the element, wherein the regression test verifies that the software version maintenance operation was successful, and wherein the regression test is specific to the element type of the element.

### Claim 14

A computer system comprising:
one or more computer processors;
one or more computer readable storage media;
program instructions stored on the computer readable storage media for execution by at least one of the computer processors, the program instructions comprising instructions to:
identify, by a software defined networking controller (SDN controller), an element managed by the SDN controller on which to perform a software version maintenance operation, the identified element in a software defined network (SDN), wherein identifying the element comprises:
responsive to the SDN controller determining that the element has powered up, sending a vendor packet from the SDN controller to the element;
receiving a reply to the vendor packet from the element, the reply identifying a version of a software image installed on the element, the reply identifying an element type for the element selected from a list consisting of a network switch, a router, a VPN, a firewall, a hypervisor, an agent, and appliance, and a load balancer;
determining, using the SDN controller, that the version identified in the reply does not match a required version of the software image identified in a catalog maintained by the SDN controller;
ensure, using the SDN controller, that there is an active backup for the element in the SDN;
responsive to ensuring that there is an active backup for the element, de-activate, using the SDN controller, the element;
initiate the software version maintenance operation on the element; and
in response to completion of the software version maintenance operation, re-activate using the SDN controller, the element in the SDN.

### Claim 15 (depends on 14)

The computer system of claim 14, wherein said instructions to send comprise instructions to send the vendor packet in response to the SDN controller becoming active in the SDN.

### Claim 16 (depends on 14)

The computer system of claim 14, wherein said instructions to send comprise instructions to send the vendor packet according to a user-defined schedule accessible to the SDN controller.

### Claim 17 (depends on 14)

The computer system of claim 14, further comprising instructions to: before said reactivating, performing a regression test on the element, wherein the regression test verifies that the software version maintenance operation was successful, and wherein the regression test is specific to the element type of the element.
