| package net.onrc.onos.apps.sdnip; |
| |
| /** |
| * Represents a route update received from BGPd. An update has an operation |
| * describing whether the update is adding a route or revoking a route. It also |
| * contains the route prefix, and {@link RibEntry} containing next hop and |
| * sequence number information for the update. |
| */ |
| public class RibUpdate { |
| private final Operation operation; |
| private final Prefix prefix; |
| private final RibEntry ribEntry; |
| |
| /** |
| * Updates can either add new routes or revoke old routes. The |
| * {@link Operation} enum describes which action is being taken. |
| */ |
| public enum Operation { |
| /** |
| * Represents a route update. ONOS should update its route information |
| * for this prefix to the new information provided in this |
| * {@link RibUpdate}. This means either add a new prefix, or update |
| * the information for an existing prefix. |
| */ |
| UPDATE, |
| /** |
| * Represents a route delete. ONOS should remove this prefix and route |
| * information from its route table. |
| */ |
| DELETE |
| } |
| |
| /** |
| * Class constructor, taking the operation of the update, the route prefix |
| * and the {@link RibEntry} describing the update. |
| * |
| * @param operation the operation of the update |
| * @param prefix the route prefix |
| * @param ribEntry the update entry |
| */ |
| public RibUpdate(Operation operation, Prefix prefix, RibEntry ribEntry) { |
| this.operation = operation; |
| this.prefix = prefix; |
| this.ribEntry = ribEntry; |
| } |
| |
| /** |
| * Gets the operation of the update. |
| * |
| * @return the operation |
| */ |
| public Operation getOperation() { |
| return operation; |
| } |
| |
| /** |
| * Gets the route prefix of the update. |
| * |
| * @return the prefix |
| */ |
| public Prefix getPrefix() { |
| return prefix; |
| } |
| |
| /** |
| * Gets the {@link RibEntry} of the update. |
| * |
| * @return the entry |
| */ |
| public RibEntry getRibEntry() { |
| return ribEntry; |
| } |
| } |