92bc518cd8e016d52de0b7f44f89c33a361d8ad1
[bgpcep.git] / bgp / openconfig-rp-statement / src / main / java / org / opendaylight / protocol / bgp / openconfig / routing / policy / statement / actions / LocalAsPathPrependHandler.java
1 /*
2  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.protocol.bgp.openconfig.routing.policy.statement.actions;
10
11 import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.RouteEntryBaseAttributes;
12 import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.policy.action.BgpActionAugPolicy;
13 import org.opendaylight.protocol.bgp.rib.spi.policy.BGPRouteEntryExportParameters;
14 import org.opendaylight.protocol.bgp.rib.spi.policy.BGPRouteEntryImportParameters;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.path.attributes.Attributes;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp._default.policy.rev180329.LocalAsPathPrepend;
17
18 public final class LocalAsPathPrependHandler extends AbstractPrependAsPath
19         implements BgpActionAugPolicy<LocalAsPathPrepend> {
20     @Override
21     public Attributes applyImportAction(
22             final RouteEntryBaseAttributes routeEntryInfo,
23             final BGPRouteEntryImportParameters parameters,
24             final Attributes attributes,
25             final LocalAsPathPrepend actions) {
26         if (parameters.getFromPeerLocalAs() != null) {
27             return prependAS(attributes, parameters.getFromPeerLocalAs());
28         }
29         return attributes;
30     }
31
32     @Override
33     public Attributes applyExportAction(
34             final RouteEntryBaseAttributes routeEntryInfo,
35             final BGPRouteEntryExportParameters parameters,
36             final Attributes attributes,
37             final LocalAsPathPrepend actions) {
38         if (parameters.getToPeerLocalAs() != null) {
39             return prependAS(attributes, parameters.getToPeerLocalAs());
40         }
41         return attributes;
42     }
43 }