056e66540e5491bda81f8a6c99d9475b79a0559c
[bgpcep.git] / bgp / linkstate / src / main / java / org / opendaylight / protocol / bgp / linkstate / impl / nlri / TeLspIpv4NlriParser.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  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 package org.opendaylight.protocol.bgp.linkstate.impl.nlri;
9
10 import io.netty.buffer.ByteBuf;
11 import org.opendaylight.protocol.bgp.linkstate.spi.AbstractTeLspNlriCodec;
12 import org.opendaylight.protocol.util.Ipv4Util;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.NlriType;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.linkstate.ObjectType;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.linkstate.object.type.TeLspCaseBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.linkstate.object.type.te.lsp._case.address.family.Ipv4CaseBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.LspId;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.TunnelId;
19
20 public final class TeLspIpv4NlriParser extends AbstractTeLspNlriCodec {
21     @Override
22     protected ObjectType parseObjectType(final ByteBuf buffer) {
23         final TeLspCaseBuilder builder = new TeLspCaseBuilder();
24         final Ipv4CaseBuilder ipv4CaseBuilder = new Ipv4CaseBuilder();
25         ipv4CaseBuilder.setIpv4TunnelSenderAddress(Ipv4Util.addressForByteBuf(buffer));
26         builder.setTunnelId(new TunnelId(buffer.readUnsignedShort()));
27         builder.setLspId(new LspId((long) buffer.readUnsignedShort()));
28         ipv4CaseBuilder.setIpv4TunnelEndpointAddress(Ipv4Util.addressForByteBuf(buffer));
29         return builder.setAddressFamily(ipv4CaseBuilder.build()).build();
30     }
31
32     @Override
33     public int getNlriType() {
34         return NlriType.Ipv4TeLsp.getIntValue();
35     }
36
37 }