* 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.bmp.parser.message;
import static java.util.Objects.requireNonNull;
import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
import org.opendaylight.protocol.bmp.spi.parser.AbstractBmpPerPeerMessageParser;
import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
-import org.opendaylight.protocol.util.ByteBufUtils;
-import org.opendaylight.protocol.util.ByteBufWriteUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.NotifyBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.NotifyMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.PeerDownNotification;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.PeerDownNotificationBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.Data;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data.FsmEventCode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data.FsmEventCodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.NotifyBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.NotifyMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.PeerDownNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.PeerDownNotificationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.Data;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data.FsmEventCode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data.FsmEventCodeBuilder;
import org.opendaylight.yangtools.yang.binding.Notification;
+import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
public class PeerDownHandler extends AbstractBmpPerPeerMessageParser<PeerDownNotificationBuilder> {
-
private static final int MESSAGE_TYPE = 2;
private final MessageRegistry msgRegistry;
public PeerDownHandler(final MessageRegistry bgpMssageRegistry) {
super(bgpMssageRegistry);
- this.msgRegistry = getBgpMessageRegistry();
+ msgRegistry = getBgpMessageRegistry();
}
@Override
- public void serializeMessageBody(final Notification message, final ByteBuf buffer) {
+ public void serializeMessageBody(final Notification<?> message, final ByteBuf buffer) {
super.serializeMessageBody(message, buffer);
Preconditions.checkArgument(message instanceof PeerDownNotification,
"An instance of PeerDownNotification is required");
final PeerDownNotification peerDown = (PeerDownNotification) message;
- if (peerDown.isLocalSystemClosed()) {
+ if (peerDown.getLocalSystemClosed()) {
if (peerDown.getData() instanceof FsmEventCode) {
- ByteBufWriteUtil.writeUnsignedByte(REASON_TWO.getValue(), buffer);
- ByteBufWriteUtil.writeUnsignedShort(((FsmEventCode) peerDown.getData()).getFsmEventCode(), buffer);
+ buffer.writeByte(REASON_TWO.getValue());
+ ByteBufUtils.writeOrZero(buffer, ((FsmEventCode) peerDown.getData()).getFsmEventCode());
} else if (peerDown.getData()
- instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329
+ instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120
.peer.down.data.Notification) {
- ByteBufWriteUtil.writeUnsignedByte(REASON_ONE.getValue(), buffer);
+ buffer.writeByte(REASON_ONE.getValue());
serializePDU(peerDown.getData(), buffer);
}
} else {
if (peerDown.getData()
- instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329
+ instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120
.peer.down.data.Notification) {
- ByteBufWriteUtil.writeUnsignedByte(REASON_THREE.getValue(), buffer);
+ buffer.writeByte(REASON_THREE.getValue());
serializePDU(peerDown.getData(), buffer);
} else {
- ByteBufWriteUtil.writeUnsignedByte(REASON_FOUR.getValue(), buffer);
+ buffer.writeByte(REASON_FOUR.getValue());
}
}
}
private void serializePDU(final Data data, final ByteBuf buffer) {
- final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data
- .Notification notification = (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp
- .message.rev180329.peer.down.data.Notification) data;
- this.msgRegistry.serializeMessage(new NotifyBuilder(notification.getNotification()).build(), buffer);
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data
+ .Notification notification =
+ (org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data
+ .Notification) data;
+ msgRegistry.serializeMessage(new NotifyBuilder(notification.getNotification()).build(), buffer);
}
@Override
- public Notification parseMessageBody(final ByteBuf bytes) throws BmpDeserializationException {
+ public PeerDownNotification parseMessageBody(final ByteBuf bytes) throws BmpDeserializationException {
final PeerDownNotificationBuilder peerDown = new PeerDownNotificationBuilder()
.setPeerHeader(parsePerPeerHeader(bytes));
final Reason reason = Reason.forValue(bytes.readUnsignedByte());
return peerDown.build();
}
- private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data
+ private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data
.Notification parseBgpNotificationMessage(final ByteBuf bytes) throws BmpDeserializationException {
- final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data
.NotificationBuilder notificationCBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.params
- .xml.ns.yang.bmp.message.rev180329.peer.down.data.NotificationBuilder();
+ .xml.ns.yang.bmp.message.rev200120.peer.down.data.NotificationBuilder();
- final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data
.notification.NotificationBuilder notificationBuilder = new org.opendaylight.yang.gen.v1.urn
- .opendaylight.params.xml.ns.yang.bmp.message.rev180329.peer.down.data.notification
+ .opendaylight.params.xml.ns.yang.bmp.message.rev200120.peer.down.data.notification
.NotificationBuilder();
try {
- final Notification not = this.msgRegistry.parseMessage(bytes, null);
+ final Notification<?> not = msgRegistry.parseMessage(bytes, null);
requireNonNull(not, "Notify message may not be null.");
Preconditions.checkArgument(not instanceof NotifyMessage,
"An instance of NotifyMessage is required");
}
public short getValue() {
- return this.value;
+ return value;
}
}
}