package org.opendaylight.lispflowmapping.lisp.serializer.address;
import java.nio.ByteBuffer;
-
-import javax.xml.bind.DatatypeConverter;
-
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.afn.safi.rev130704.AddressFamily;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Mac;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.MacBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.IetfYangUtil;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
@Override
protected void serializeData(ByteBuffer buffer, LispAddress lispAddress) {
Mac mac = (Mac) lispAddress.getAddress();
- String macString = mac.getMac().getValue();
- macString = macString.replaceAll(":", "");
- buffer.put(DatatypeConverter.parseHexBinary(macString));
+ buffer.put(IetfYangUtil.macAddressBytes(mac.getMac()));
}
@Override
protected void serializeData(ByteBuffer buffer, SimpleAddress simpleAddress) {
- String macString = simpleAddress.getMacAddress().getValue();
- macString = macString.replaceAll(":", "");
- buffer.put(DatatypeConverter.parseHexBinary(macString));
+ buffer.put(IetfYangUtil.macAddressBytes(simpleAddress.getMacAddress()));
}
@Override
protected Eid deserializeEidData(ByteBuffer buffer, LispAddressSerializerContext ctx) {
EidBuilder eb = new EidBuilder();
- eb.setAddressType(MacAfi.class);
+ eb.setAddressType(MacAfi.VALUE);
eb.setVirtualNetworkId(getVni(ctx));
eb.setAddress(new MacBuilder().setMac(deserializeData(buffer)).build());
return eb.build();
@Override
protected Rloc deserializeRlocData(ByteBuffer buffer) {
RlocBuilder rb = new RlocBuilder();
- rb.setAddressType(MacAfi.class);
+ rb.setAddressType(MacAfi.VALUE);
rb.setVirtualNetworkId(null);
rb.setAddress(new MacBuilder().setMac(deserializeData(buffer)).build());
return rb.build();
return new SimpleAddress(deserializeData(buffer));
}
- private MacAddress deserializeData(ByteBuffer buffer) {
+ private static MacAddress deserializeData(ByteBuffer buffer) {
byte[] macBuffer = new byte[6];
buffer.get(macBuffer);
- StringBuilder sb = new StringBuilder(17);
- for (byte b : macBuffer) {
- if (sb.length() > 0) {
- sb.append(':');
- }
- sb.append(String.format("%02x", b));
- }
- return new MacAddress(sb.toString());
+ return IetfYangUtil.macAddressFor(macBuffer);
}
private interface Length {
int MAC = 6;
}
-
}