<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-yang-types</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-uint24-netty</artifactId>
+ </dependency>
<!-- test scope dependencies -->
<dependency>
import static org.opendaylight.protocol.bgp.evpn.impl.esi.types.EsiModelUtil.extractUint24LD;
import io.netty.buffer.ByteBuf;
+import org.opendaylight.mdsal.uint24.netty.Uint24ByteBufUtils;
import org.opendaylight.protocol.util.ByteArray;
-import org.opendaylight.protocol.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.IetfYangUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev180329.EsiType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev180329.esi.Esi;
"Unknown esi instance. Passed %s. Needed MacAutoGeneratedCase.", esi.getClass());
final MacAutoGenerated macAuto = ((MacAutoGeneratedCase) esi).getMacAutoGenerated();
body.writeBytes(IetfYangUtil.INSTANCE.macAddressBytes(macAuto.getSystemMacAddress()));
- body.writeMedium(macAuto.getLocalDiscriminator().getValue().intValue());
+ Uint24ByteBufUtils.writeUint24(body, macAuto.getLocalDiscriminator());
return body;
}
.setMacAutoGenerated(new MacAutoGeneratedBuilder()
.setSystemMacAddress(IetfYangUtil.INSTANCE.macAddressFor(
ByteArray.readBytes(buffer, MAC_ADDRESS_LENGTH)))
- .setLocalDiscriminator(ByteBufUtils.readUint24(buffer))
+ .setLocalDiscriminator(Uint24ByteBufUtils.readUint24(buffer))
.build())
.build();
}
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-common-netty</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-uint24-netty</artifactId>
+ </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import java.util.List;
+import org.opendaylight.mdsal.uint24.netty.Uint24ByteBufUtils;
import org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvParser;
import org.opendaylight.protocol.bgp.parser.spi.BgpPrefixSidTlvSerializer;
-import org.opendaylight.protocol.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.Srgb;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.originator.srgb.tlv.SrgbValue;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.labeled.unicast.rev180329.originator.srgb.tlv.SrgbValueBuilder;
"Number of SRGBs does not fit available bytes.");
final List<SrgbValue> ret = new ArrayList<>();
while (buffer.isReadable()) {
- ret.add(new SrgbValueBuilder().setBase(new Srgb(ByteBufUtils.readUint24(buffer)))
- .setRange(new Srgb(ByteBufUtils.readUint24(buffer))).build());
+ ret.add(new SrgbValueBuilder().setBase(new Srgb(Uint24ByteBufUtils.readUint24(buffer)))
+ .setRange(new Srgb(Uint24ByteBufUtils.readUint24(buffer))).build());
}
return ret;
}
final LuOriginatorSrgbTlv luTlv = (LuOriginatorSrgbTlv) tlv;
valueBuf.writeZero(ORIGINATOR_FLAGS_BYTES);
for (final SrgbValue val : luTlv.getSrgbValue()) {
- valueBuf.writeMedium(val.getBase().getValue().intValue());
- valueBuf.writeMedium(val.getRange().getValue().intValue());
+ Uint24ByteBufUtils.writeUint24(valueBuf, val.getBase());
+ Uint24ByteBufUtils.writeUint24(valueBuf, val.getRange());
}
}
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-data-impl</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>mdsal-uint24-netty</artifactId>
+ </dependency>
<!-- test scope dependencies -->
<dependency>
import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import java.util.List;
+import org.opendaylight.mdsal.uint24.netty.Uint24ByteBufUtils;
import org.opendaylight.protocol.bgp.linkstate.spi.TlvUtil;
import org.opendaylight.protocol.util.BitArray;
-import org.opendaylight.protocol.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.ProtocolId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.node.state.SrAlgorithm;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.node.state.SrAlgorithmBuilder;
final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE);
setFlags(flags, protocol, builder);
buffer.skipBytes(RESERVERED);
- builder.setRangeSize(ByteBufUtils.readUint24(buffer));
+ builder.setRangeSize(Uint24ByteBufUtils.readUint24(buffer));
builder.setSidLabelIndex(SidLabelIndexParser.parseSidSubTlv(buffer));
return builder.build();
}
bs.set(SR_IPV6, caps.isSrIpv6());
bs.toByteBuf(buffer);
buffer.writeZero(RESERVERED);
- buffer.writeMedium(caps.getRangeSize().getValue().intValue());
+ Uint24ByteBufUtils.writeUint24(buffer, caps.getRangeSize());
TlvUtil.writeTLV(SID_TYPE, SidLabelIndexParser.serializeSidValue(caps.getSidLabelIndex()), buffer);
}
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>yang-ext</artifactId>
+ <artifactId>odl-uint24</artifactId>
</dependency>
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>concepts</artifactId>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>yang-ext</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-inet-types</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
<artifactId>yang-ext</artifactId>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>yang-binding</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-inet-types</artifactId>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-binding-generator-impl</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-inet-types</artifactId>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-common</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-uint24</artifactId>
+ </dependency>
<dependency>
<groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
<artifactId>rfc6991-ietf-inet-types</artifactId>
+++ /dev/null
-module odl-uint24 {
- yang-version 1;
- namespace "urn:opendaylight:params:xml:ns:yang:uint24";
- prefix "uint24";
-
- organization "OpenDaylight";
- contact "Robert Varga <robert.varga@pantheon.tech>";
-
- description
- "This module contains the definition of uint24, an uint32 restricted
- to 24 bits.
-
- Copyright (c)2019 PANTHEON.tech, s.r.o and others. All rights reserved.
-
- This program and the accompanying materials are made available
- under the terms of the Eclipse Public License v1.0 which
- accompanies this distribution, and is available at
- http://www.eclipse.org/legal/epl-v10.html";
-
- revision "2020-01-04" {
- description "Initial revision.";
- }
-
- typedef uint24 {
- type uint32 {
- range "0..16777215";
- }
- description "24-bit unsigned integer.";
- }
-}
<type>xml</type>
<classifier>features</classifier>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>odl-mdsal-uint24-netty</artifactId>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </dependency>
</dependencies>
</project>
<type>xml</type>
<classifier>features</classifier>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>odl-mdsal-uint24-netty</artifactId>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </dependency>
</dependencies>
</project>
<type>xml</type>
<classifier>features</classifier>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal</groupId>
+ <artifactId>odl-mdsal-uint24-netty</artifactId>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </dependency>
</dependencies>
</project>
<type>xml</type>
<classifier>features</classifier>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.mdsal.model</groupId>
+ <artifactId>odl-mdsal-model-odl-uint24</artifactId>
+ <type>xml</type>
+ <classifier>features</classifier>
+ </dependency>
</dependencies>
</project>
+++ /dev/null
-/*
- * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.protocol.util;
-
-import io.netty.buffer.ByteBuf;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.uint24.rev200104.Uint24;
-import org.opendaylight.yangtools.yang.common.Uint32;
-
-/**
- * Utility methods for interacting with {@link ByteBuf}s. These add a number of methods for reading and writing various
- * data types from/to ByteBufs.
- */
-public final class ByteBufUtils {
- private ByteBufUtils() {
-
- }
-
- public static @NonNull Uint24 readUint24(final ByteBuf buf) {
- return new Uint24(Uint32.fromIntBits(buf.readMedium()));
- }
-}