Move channel message header decoder manipulation 09/83309/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 29 Jul 2019 21:23:13 +0000 (23:23 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 29 Jul 2019 21:23:13 +0000 (23:23 +0200)
BGPSessionImpl should not be in charge of naming/types of header
decoder. Move this knowledge to BGPMessageHeaderDecoder.

Change-Id: Ic183a9852bce8c7c552dfe7805dbd4f06b0b8fe5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPMessageHeaderDecoder.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPSessionImpl.java

index 403e1022540aacc9e5f1fc3fd9805d318f0d8efe..a73c04234417fdc56f50db90e8c667f5ebbc8f96 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.protocol.bgp.rib.impl;
 
+import io.netty.channel.Channel;
 import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
 
 /**
@@ -26,6 +27,9 @@ final class BGPMessageHeaderDecoder extends LengthFieldBasedFrameDecoder {
 
     private static final int EXTENDED_MAX_FRAME_SIZE = 65535;
 
+    // Name of the extended decoder in the channel pipeline
+    private static final String EXTENDED_MSG_DECODER = "EXTENDED_MSG_DECODER";
+
     /*
 
      0                   1                   2                   3
@@ -53,7 +57,8 @@ final class BGPMessageHeaderDecoder extends LengthFieldBasedFrameDecoder {
         return new BGPMessageHeaderDecoder(MAX_FRAME_SIZE);
     }
 
-    static BGPMessageHeaderDecoder getExtendedBGPMessageHeaderDecoder() {
-        return new BGPMessageHeaderDecoder(EXTENDED_MAX_FRAME_SIZE);
+    static void enableExtendedMessages(final Channel channel) {
+        channel.pipeline().replace(BGPMessageHeaderDecoder.class, EXTENDED_MSG_DECODER,
+            new BGPMessageHeaderDecoder(EXTENDED_MAX_FRAME_SIZE));
     }
 }
index 7e630dae8c48235080f29c14ae88c6457f018dd2..7233833cee3c2bc20772a33ed2b40121e35753d7 100644 (file)
@@ -89,8 +89,6 @@ public class BGPSessionImpl extends SimpleChannelInboundHandler<Notification> im
 
     private static final int KA_TO_DEADTIMER_RATIO = 3;
 
-    private static final String EXTENDED_MSG_DECODER = "EXTENDED_MSG_DECODER";
-
     static final String END_OF_INPUT = "End of input detected. Close the session.";
 
     /**
@@ -245,8 +243,7 @@ public class BGPSessionImpl extends SimpleChannelInboundHandler<Notification> im
     public synchronized void setChannelExtMsgCoder(final Open remoteOpen) {
         final boolean enableExMess = BgpExtendedMessageUtil.advertizedBgpExtendedMessageCapability(remoteOpen);
         if (enableExMess) {
-            this.channel.pipeline().replace(BGPMessageHeaderDecoder.class, EXTENDED_MSG_DECODER,
-                    BGPMessageHeaderDecoder.getExtendedBGPMessageHeaderDecoder());
+            BGPMessageHeaderDecoder.enableExtendedMessages(this.channel);
         }
     }