1 package org.opendaylight.protocol.bgp.parser.impl.message.update;
3 import org.opendaylight.protocol.bgp.parser.spi.AttributeParser;
4 import org.opendaylight.protocol.concepts.IPv4;
5 import org.opendaylight.protocol.util.ByteArray;
6 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
7 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.path.attributes.Aggregator;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.path.attributes.AggregatorBuilder;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.update.PathAttributesBuilder;
12 final class AggregatorAttributeParser implements AttributeParser {
13 static final int TYPE = 7;
16 * Parse AGGREGATOR from bytes
18 * @param bytes byte array to be parsed
19 * @return {@link Aggregator} BGP Aggregator
21 private static Aggregator parseAggregator(final byte[] bytes) {
22 final AsNumber asNumber = new AsNumber(ByteArray.bytesToLong(ByteArray.subByte(bytes, 0, AsPathSegmentParser.AS_NUMBER_LENGTH)));
23 final Ipv4Address address = new Ipv4Address(IPv4.FAMILY.addressForBytes(
24 ByteArray.subByte(bytes, AsPathSegmentParser.AS_NUMBER_LENGTH, 4)).toString());
25 return new AggregatorBuilder().setAsNumber(asNumber).setNetworkAddress(address).build();
29 public void parseAttribute(final byte[] bytes, final PathAttributesBuilder builder) {
30 builder.setAggregator(parseAggregator(bytes));