You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by su...@apache.org on 2017/02/25 07:18:08 UTC

[15/29] drill git commit: DRILL-4280: CORE (Java protocol)

DRILL-4280: CORE (Java protocol)

+ Define SaslStatus and SaslMessage messages in protocol
+ Add "authenticationMechanisms" field to all handshakes
+ Add "saslSupport\u201d field to UserToBitHandshake


Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/e17baa84
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/e17baa84
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/e17baa84

Branch: refs/heads/master
Commit: e17baa846c4efba5f4e448f98f94b624a43e3834
Parents: 3efc2ec
Author: Sudheesh Katkam <su...@apache.org>
Authored: Wed Jan 25 18:41:15 2017 -0800
Committer: Sudheesh Katkam <su...@apache.org>
Committed: Fri Feb 24 19:01:41 2017 -0800

----------------------------------------------------------------------
 .../org/apache/drill/exec/proto/BitControl.java |  293 ++++-
 .../org/apache/drill/exec/proto/BitData.java    |  229 +++-
 .../drill/exec/proto/SchemaBitControl.java      |    7 +
 .../apache/drill/exec/proto/SchemaBitData.java  |    7 +
 .../drill/exec/proto/SchemaUserBitShared.java   |  126 ++
 .../drill/exec/proto/SchemaUserProtos.java      |   14 +
 .../apache/drill/exec/proto/UserBitShared.java  | 1159 +++++++++++++++---
 .../org/apache/drill/exec/proto/UserProtos.java |  503 +++++++-
 .../exec/proto/beans/BitControlHandshake.java   |   32 +
 .../exec/proto/beans/BitServerHandshake.java    |   32 +
 .../exec/proto/beans/BitToUserHandshake.java    |   32 +
 .../drill/exec/proto/beans/HandshakeStatus.java |    4 +-
 .../apache/drill/exec/proto/beans/RpcType.java  |    4 +-
 .../drill/exec/proto/beans/SaslMessage.java     |  208 ++++
 .../drill/exec/proto/beans/SaslStatus.java      |   55 +
 .../drill/exec/proto/beans/SaslSupport.java     |   49 +
 .../exec/proto/beans/UserToBitHandshake.java    |   22 +
 protocol/src/main/protobuf/BitControl.proto     |    4 +
 protocol/src/main/protobuf/BitData.proto        |    4 +
 protocol/src/main/protobuf/User.proto           |   14 +-
 protocol/src/main/protobuf/UserBitShared.proto  |   13 +
 21 files changed, 2500 insertions(+), 311 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/drill/blob/e17baa84/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java b/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
index 736f661..29471a8 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/BitControl.java
@@ -126,6 +126,14 @@ public final class BitControl {
      * <code>RESP_CUSTOM = 18;</code>
      */
     RESP_CUSTOM(16, 18),
+    /**
+     * <code>SASL_MESSAGE = 19;</code>
+     *
+     * <pre>
+     * both bit request and response
+     * </pre>
+     */
+    SASL_MESSAGE(17, 19),
     ;
 
     /**
@@ -220,6 +228,14 @@ public final class BitControl {
      * <code>RESP_CUSTOM = 18;</code>
      */
     public static final int RESP_CUSTOM_VALUE = 18;
+    /**
+     * <code>SASL_MESSAGE = 19;</code>
+     *
+     * <pre>
+     * both bit request and response
+     * </pre>
+     */
+    public static final int SASL_MESSAGE_VALUE = 19;
 
 
     public final int getNumber() { return value; }
@@ -243,6 +259,7 @@ public final class BitControl {
         case 13: return RESP_BIT_STATUS;
         case 14: return RESP_QUERY_STATUS;
         case 18: return RESP_CUSTOM;
+        case 19: return SASL_MESSAGE;
         default: return null;
       }
     }
@@ -330,6 +347,26 @@ public final class BitControl {
      * <code>optional .exec.DrillbitEndpoint endpoint = 3;</code>
      */
     org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpointOrBuilder getEndpointOrBuilder();
+
+    // repeated string authenticationMechanisms = 4;
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    java.util.List<java.lang.String>
+    getAuthenticationMechanismsList();
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    int getAuthenticationMechanismsCount();
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    java.lang.String getAuthenticationMechanisms(int index);
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    com.google.protobuf.ByteString
+        getAuthenticationMechanismsBytes(int index);
   }
   /**
    * Protobuf type {@code exec.bit.control.BitControlHandshake}
@@ -411,6 +448,14 @@ public final class BitControl {
               bitField0_ |= 0x00000004;
               break;
             }
+            case 34: {
+              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+                authenticationMechanisms_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000008;
+              }
+              authenticationMechanisms_.add(input.readBytes());
+              break;
+            }
           }
         }
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
@@ -419,6 +464,9 @@ public final class BitControl {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e.getMessage()).setUnfinishedMessage(this);
       } finally {
+        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+          authenticationMechanisms_ = new com.google.protobuf.UnmodifiableLazyStringList(authenticationMechanisms_);
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -505,10 +553,41 @@ public final class BitControl {
       return endpoint_;
     }
 
+    // repeated string authenticationMechanisms = 4;
+    public static final int AUTHENTICATIONMECHANISMS_FIELD_NUMBER = 4;
+    private com.google.protobuf.LazyStringList authenticationMechanisms_;
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    public java.util.List<java.lang.String>
+        getAuthenticationMechanismsList() {
+      return authenticationMechanisms_;
+    }
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    public int getAuthenticationMechanismsCount() {
+      return authenticationMechanisms_.size();
+    }
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    public java.lang.String getAuthenticationMechanisms(int index) {
+      return authenticationMechanisms_.get(index);
+    }
+    /**
+     * <code>repeated string authenticationMechanisms = 4;</code>
+     */
+    public com.google.protobuf.ByteString
+        getAuthenticationMechanismsBytes(int index) {
+      return authenticationMechanisms_.getByteString(index);
+    }
+
     private void initFields() {
       rpcVersion_ = 0;
       channel_ = org.apache.drill.exec.proto.UserBitShared.RpcChannel.BIT_CONTROL;
       endpoint_ = org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.getDefaultInstance();
+      authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -531,6 +610,9 @@ public final class BitControl {
       if (((bitField0_ & 0x00000004) == 0x00000004)) {
         output.writeMessage(3, endpoint_);
       }
+      for (int i = 0; i < authenticationMechanisms_.size(); i++) {
+        output.writeBytes(4, authenticationMechanisms_.getByteString(i));
+      }
       getUnknownFields().writeTo(output);
     }
 
@@ -552,6 +634,15 @@ public final class BitControl {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(3, endpoint_);
       }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < authenticationMechanisms_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeBytesSizeNoTag(authenticationMechanisms_.getByteString(i));
+        }
+        size += dataSize;
+        size += 1 * getAuthenticationMechanismsList().size();
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
       return size;
@@ -679,6 +770,8 @@ public final class BitControl {
           endpointBuilder_.clear();
         }
         bitField0_ = (bitField0_ & ~0x00000004);
+        authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
 
@@ -723,6 +816,12 @@ public final class BitControl {
         } else {
           result.endpoint_ = endpointBuilder_.build();
         }
+        if (((bitField0_ & 0x00000008) == 0x00000008)) {
+          authenticationMechanisms_ = new com.google.protobuf.UnmodifiableLazyStringList(
+              authenticationMechanisms_);
+          bitField0_ = (bitField0_ & ~0x00000008);
+        }
+        result.authenticationMechanisms_ = authenticationMechanisms_;
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -748,6 +847,16 @@ public final class BitControl {
         if (other.hasEndpoint()) {
           mergeEndpoint(other.getEndpoint());
         }
+        if (!other.authenticationMechanisms_.isEmpty()) {
+          if (authenticationMechanisms_.isEmpty()) {
+            authenticationMechanisms_ = other.authenticationMechanisms_;
+            bitField0_ = (bitField0_ & ~0x00000008);
+          } else {
+            ensureAuthenticationMechanismsIsMutable();
+            authenticationMechanisms_.addAll(other.authenticationMechanisms_);
+          }
+          onChanged();
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
       }
@@ -961,6 +1070,99 @@ public final class BitControl {
         return endpointBuilder_;
       }
 
+      // repeated string authenticationMechanisms = 4;
+      private com.google.protobuf.LazyStringList authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureAuthenticationMechanismsIsMutable() {
+        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
+          authenticationMechanisms_ = new com.google.protobuf.LazyStringArrayList(authenticationMechanisms_);
+          bitField0_ |= 0x00000008;
+         }
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public java.util.List<java.lang.String>
+          getAuthenticationMechanismsList() {
+        return java.util.Collections.unmodifiableList(authenticationMechanisms_);
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public int getAuthenticationMechanismsCount() {
+        return authenticationMechanisms_.size();
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public java.lang.String getAuthenticationMechanisms(int index) {
+        return authenticationMechanisms_.get(index);
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public com.google.protobuf.ByteString
+          getAuthenticationMechanismsBytes(int index) {
+        return authenticationMechanisms_.getByteString(index);
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public Builder setAuthenticationMechanisms(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAuthenticationMechanismsIsMutable();
+        authenticationMechanisms_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public Builder addAuthenticationMechanisms(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAuthenticationMechanismsIsMutable();
+        authenticationMechanisms_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public Builder addAllAuthenticationMechanisms(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureAuthenticationMechanismsIsMutable();
+        super.addAll(values, authenticationMechanisms_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public Builder clearAuthenticationMechanisms() {
+        authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000008);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 4;</code>
+       */
+      public Builder addAuthenticationMechanismsBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAuthenticationMechanismsIsMutable();
+        authenticationMechanisms_.add(value);
+        onChanged();
+        return this;
+      }
+
       // @@protoc_insertion_point(builder_scope:exec.bit.control.BitControlHandshake)
     }
 
@@ -9182,53 +9384,54 @@ public final class BitControl {
     java.lang.String[] descriptorData = {
       "\n\020BitControl.proto\022\020exec.bit.control\032\025Ex" +
       "ecutionProtos.proto\032\022Coordination.proto\032" +
-      "\023UserBitShared.proto\"\213\001\n\023BitControlHands" +
+      "\023UserBitShared.proto\"\255\001\n\023BitControlHands" +
       "hake\022\023\n\013rpc_version\030\001 \001(\005\0225\n\007channel\030\002 \001" +
       "(\0162\027.exec.shared.RpcChannel:\013BIT_CONTROL" +
       "\022(\n\010endpoint\030\003 \001(\0132\026.exec.DrillbitEndpoi" +
-      "nt\"F\n\tBitStatus\0229\n\017fragment_status\030\001 \003(\013" +
-      "2 .exec.bit.control.FragmentStatus\"n\n\016Fr" +
-      "agmentStatus\0222\n\007profile\030\001 \001(\0132!.exec.sha" +
-      "red.MinorFragmentProfile\022(\n\006handle\030\002 \001(\013",
-      "2\030.exec.bit.FragmentHandle\"G\n\023Initialize" +
-      "Fragments\0220\n\010fragment\030\001 \003(\0132\036.exec.bit.c" +
-      "ontrol.PlanFragment\".\n\rCustomMessage\022\014\n\004" +
-      "type\030\001 \001(\005\022\017\n\007message\030\002 \001(\014\"\374\003\n\014PlanFrag" +
-      "ment\022(\n\006handle\030\001 \001(\0132\030.exec.bit.Fragment" +
-      "Handle\022\024\n\014network_cost\030\004 \001(\002\022\020\n\010cpu_cost" +
-      "\030\005 \001(\002\022\021\n\tdisk_cost\030\006 \001(\002\022\023\n\013memory_cost" +
-      "\030\007 \001(\002\022\025\n\rfragment_json\030\010 \001(\t\022\025\n\rleaf_fr" +
-      "agment\030\t \001(\010\022*\n\nassignment\030\n \001(\0132\026.exec." +
-      "DrillbitEndpoint\022\'\n\007foreman\030\013 \001(\0132\026.exec",
-      ".DrillbitEndpoint\022\035\n\013mem_initial\030\014 \001(\003:\010" +
-      "20000000\022\033\n\007mem_max\030\r \001(\003:\n2000000000\0221\n" +
-      "\013credentials\030\016 \001(\0132\034.exec.shared.UserCre" +
-      "dentials\022\024\n\014options_json\030\017 \001(\t\022:\n\007contex" +
-      "t\030\020 \001(\0132).exec.bit.control.QueryContextI" +
-      "nformation\022.\n\tcollector\030\021 \003(\0132\033.exec.bit" +
-      ".control.Collector\"\210\001\n\tCollector\022\"\n\032oppo" +
-      "site_major_fragment_id\030\001 \001(\005\022#\n\027incoming" +
-      "_minor_fragment\030\002 \003(\005B\002\020\001\022\035\n\025supports_ou" +
-      "t_of_order\030\003 \001(\010\022\023\n\013is_spooling\030\004 \001(\010\"w\n",
-      "\027QueryContextInformation\022\030\n\020query_start_" +
-      "time\030\001 \001(\003\022\021\n\ttime_zone\030\002 \001(\005\022\033\n\023default" +
-      "_schema_name\030\003 \001(\t\022\022\n\nsession_id\030\004 \001(\t\"f" +
-      "\n\017WorkQueueStatus\022(\n\010endpoint\030\001 \001(\0132\026.ex" +
-      "ec.DrillbitEndpoint\022\024\n\014queue_length\030\002 \001(" +
-      "\005\022\023\n\013report_time\030\003 \001(\003\"h\n\020FinishedReceiv" +
-      "er\022*\n\010receiver\030\001 \001(\0132\030.exec.bit.Fragment" +
-      "Handle\022(\n\006sender\030\002 \001(\0132\030.exec.bit.Fragme" +
-      "ntHandle*\364\002\n\007RpcType\022\r\n\tHANDSHAKE\020\000\022\007\n\003A" +
-      "CK\020\001\022\013\n\007GOODBYE\020\002\022\034\n\030REQ_INITIALIZE_FRAG",
-      "MENTS\020\003\022\027\n\023REQ_CANCEL_FRAGMENT\020\006\022\031\n\025REQ_" +
-      "RECEIVER_FINISHED\020\007\022\027\n\023REQ_FRAGMENT_STAT" +
-      "US\020\010\022\022\n\016REQ_BIT_STATUS\020\t\022\024\n\020REQ_QUERY_ST" +
-      "ATUS\020\n\022\024\n\020REQ_QUERY_CANCEL\020\017\022\030\n\024REQ_UNPA" +
-      "USE_FRAGMENT\020\020\022\016\n\nREQ_CUSTOM\020\021\022\030\n\024RESP_F" +
-      "RAGMENT_HANDLE\020\013\022\030\n\024RESP_FRAGMENT_STATUS" +
-      "\020\014\022\023\n\017RESP_BIT_STATUS\020\r\022\025\n\021RESP_QUERY_ST" +
-      "ATUS\020\016\022\017\n\013RESP_CUSTOM\020\022B+\n\033org.apache.dr" +
-      "ill.exec.protoB\nBitControlH\001"
+      "nt\022 \n\030authenticationMechanisms\030\004 \003(\t\"F\n\t" +
+      "BitStatus\0229\n\017fragment_status\030\001 \003(\0132 .exe" +
+      "c.bit.control.FragmentStatus\"n\n\016Fragment" +
+      "Status\0222\n\007profile\030\001 \001(\0132!.exec.shared.Mi",
+      "norFragmentProfile\022(\n\006handle\030\002 \001(\0132\030.exe" +
+      "c.bit.FragmentHandle\"G\n\023InitializeFragme" +
+      "nts\0220\n\010fragment\030\001 \003(\0132\036.exec.bit.control" +
+      ".PlanFragment\".\n\rCustomMessage\022\014\n\004type\030\001" +
+      " \001(\005\022\017\n\007message\030\002 \001(\014\"\374\003\n\014PlanFragment\022(" +
+      "\n\006handle\030\001 \001(\0132\030.exec.bit.FragmentHandle" +
+      "\022\024\n\014network_cost\030\004 \001(\002\022\020\n\010cpu_cost\030\005 \001(\002" +
+      "\022\021\n\tdisk_cost\030\006 \001(\002\022\023\n\013memory_cost\030\007 \001(\002" +
+      "\022\025\n\rfragment_json\030\010 \001(\t\022\025\n\rleaf_fragment" +
+      "\030\t \001(\010\022*\n\nassignment\030\n \001(\0132\026.exec.Drillb",
+      "itEndpoint\022\'\n\007foreman\030\013 \001(\0132\026.exec.Drill" +
+      "bitEndpoint\022\035\n\013mem_initial\030\014 \001(\003:\010200000" +
+      "00\022\033\n\007mem_max\030\r \001(\003:\n2000000000\0221\n\013crede" +
+      "ntials\030\016 \001(\0132\034.exec.shared.UserCredentia" +
+      "ls\022\024\n\014options_json\030\017 \001(\t\022:\n\007context\030\020 \001(" +
+      "\0132).exec.bit.control.QueryContextInforma" +
+      "tion\022.\n\tcollector\030\021 \003(\0132\033.exec.bit.contr" +
+      "ol.Collector\"\210\001\n\tCollector\022\"\n\032opposite_m" +
+      "ajor_fragment_id\030\001 \001(\005\022#\n\027incoming_minor" +
+      "_fragment\030\002 \003(\005B\002\020\001\022\035\n\025supports_out_of_o",
+      "rder\030\003 \001(\010\022\023\n\013is_spooling\030\004 \001(\010\"w\n\027Query" +
+      "ContextInformation\022\030\n\020query_start_time\030\001" +
+      " \001(\003\022\021\n\ttime_zone\030\002 \001(\005\022\033\n\023default_schem" +
+      "a_name\030\003 \001(\t\022\022\n\nsession_id\030\004 \001(\t\"f\n\017Work" +
+      "QueueStatus\022(\n\010endpoint\030\001 \001(\0132\026.exec.Dri" +
+      "llbitEndpoint\022\024\n\014queue_length\030\002 \001(\005\022\023\n\013r" +
+      "eport_time\030\003 \001(\003\"h\n\020FinishedReceiver\022*\n\010" +
+      "receiver\030\001 \001(\0132\030.exec.bit.FragmentHandle" +
+      "\022(\n\006sender\030\002 \001(\0132\030.exec.bit.FragmentHand" +
+      "le*\206\003\n\007RpcType\022\r\n\tHANDSHAKE\020\000\022\007\n\003ACK\020\001\022\013",
+      "\n\007GOODBYE\020\002\022\034\n\030REQ_INITIALIZE_FRAGMENTS\020" +
+      "\003\022\027\n\023REQ_CANCEL_FRAGMENT\020\006\022\031\n\025REQ_RECEIV" +
+      "ER_FINISHED\020\007\022\027\n\023REQ_FRAGMENT_STATUS\020\010\022\022" +
+      "\n\016REQ_BIT_STATUS\020\t\022\024\n\020REQ_QUERY_STATUS\020\n" +
+      "\022\024\n\020REQ_QUERY_CANCEL\020\017\022\030\n\024REQ_UNPAUSE_FR" +
+      "AGMENT\020\020\022\016\n\nREQ_CUSTOM\020\021\022\030\n\024RESP_FRAGMEN" +
+      "T_HANDLE\020\013\022\030\n\024RESP_FRAGMENT_STATUS\020\014\022\023\n\017" +
+      "RESP_BIT_STATUS\020\r\022\025\n\021RESP_QUERY_STATUS\020\016" +
+      "\022\017\n\013RESP_CUSTOM\020\022\022\020\n\014SASL_MESSAGE\020\023B+\n\033o" +
+      "rg.apache.drill.exec.protoB\nBitControlH\001"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
       new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -9240,7 +9443,7 @@ public final class BitControl {
           internal_static_exec_bit_control_BitControlHandshake_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_exec_bit_control_BitControlHandshake_descriptor,
-              new java.lang.String[] { "RpcVersion", "Channel", "Endpoint", });
+              new java.lang.String[] { "RpcVersion", "Channel", "Endpoint", "AuthenticationMechanisms", });
           internal_static_exec_bit_control_BitStatus_descriptor =
             getDescriptor().getMessageTypes().get(1);
           internal_static_exec_bit_control_BitStatus_fieldAccessorTable = new

http://git-wip-us.apache.org/repos/asf/drill/blob/e17baa84/protocol/src/main/java/org/apache/drill/exec/proto/BitData.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/BitData.java b/protocol/src/main/java/org/apache/drill/exec/proto/BitData.java
index 0731975..ef07bc9 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/BitData.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/BitData.java
@@ -50,6 +50,14 @@ public final class BitData {
      * </pre>
      */
     REQ_RECORD_BATCH(3, 3),
+    /**
+     * <code>SASL_MESSAGE = 4;</code>
+     *
+     * <pre>
+     * both bit request and response
+     * </pre>
+     */
+    SASL_MESSAGE(4, 4),
     ;
 
     /**
@@ -72,6 +80,14 @@ public final class BitData {
      * </pre>
      */
     public static final int REQ_RECORD_BATCH_VALUE = 3;
+    /**
+     * <code>SASL_MESSAGE = 4;</code>
+     *
+     * <pre>
+     * both bit request and response
+     * </pre>
+     */
+    public static final int SASL_MESSAGE_VALUE = 4;
 
 
     public final int getNumber() { return value; }
@@ -82,6 +98,7 @@ public final class BitData {
         case 1: return ACK;
         case 2: return GOODBYE;
         case 3: return REQ_RECORD_BATCH;
+        case 4: return SASL_MESSAGE;
         default: return null;
       }
     }
@@ -631,6 +648,26 @@ public final class BitData {
      * <code>optional int32 rpc_version = 1;</code>
      */
     int getRpcVersion();
+
+    // repeated string authenticationMechanisms = 2;
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    java.util.List<java.lang.String>
+    getAuthenticationMechanismsList();
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    int getAuthenticationMechanismsCount();
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    java.lang.String getAuthenticationMechanisms(int index);
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    com.google.protobuf.ByteString
+        getAuthenticationMechanismsBytes(int index);
   }
   /**
    * Protobuf type {@code exec.bit.data.BitServerHandshake}
@@ -688,6 +725,14 @@ public final class BitData {
               rpcVersion_ = input.readInt32();
               break;
             }
+            case 18: {
+              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+                authenticationMechanisms_ = new com.google.protobuf.LazyStringArrayList();
+                mutable_bitField0_ |= 0x00000002;
+              }
+              authenticationMechanisms_.add(input.readBytes());
+              break;
+            }
           }
         }
       } catch (com.google.protobuf.InvalidProtocolBufferException e) {
@@ -696,6 +741,9 @@ public final class BitData {
         throw new com.google.protobuf.InvalidProtocolBufferException(
             e.getMessage()).setUnfinishedMessage(this);
       } finally {
+        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
+          authenticationMechanisms_ = new com.google.protobuf.UnmodifiableLazyStringList(authenticationMechanisms_);
+        }
         this.unknownFields = unknownFields.build();
         makeExtensionsImmutable();
       }
@@ -744,8 +792,39 @@ public final class BitData {
       return rpcVersion_;
     }
 
+    // repeated string authenticationMechanisms = 2;
+    public static final int AUTHENTICATIONMECHANISMS_FIELD_NUMBER = 2;
+    private com.google.protobuf.LazyStringList authenticationMechanisms_;
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    public java.util.List<java.lang.String>
+        getAuthenticationMechanismsList() {
+      return authenticationMechanisms_;
+    }
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    public int getAuthenticationMechanismsCount() {
+      return authenticationMechanisms_.size();
+    }
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    public java.lang.String getAuthenticationMechanisms(int index) {
+      return authenticationMechanisms_.get(index);
+    }
+    /**
+     * <code>repeated string authenticationMechanisms = 2;</code>
+     */
+    public com.google.protobuf.ByteString
+        getAuthenticationMechanismsBytes(int index) {
+      return authenticationMechanisms_.getByteString(index);
+    }
+
     private void initFields() {
       rpcVersion_ = 0;
+      authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
     }
     private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
@@ -762,6 +841,9 @@ public final class BitData {
       if (((bitField0_ & 0x00000001) == 0x00000001)) {
         output.writeInt32(1, rpcVersion_);
       }
+      for (int i = 0; i < authenticationMechanisms_.size(); i++) {
+        output.writeBytes(2, authenticationMechanisms_.getByteString(i));
+      }
       getUnknownFields().writeTo(output);
     }
 
@@ -775,6 +857,15 @@ public final class BitData {
         size += com.google.protobuf.CodedOutputStream
           .computeInt32Size(1, rpcVersion_);
       }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < authenticationMechanisms_.size(); i++) {
+          dataSize += com.google.protobuf.CodedOutputStream
+            .computeBytesSizeNoTag(authenticationMechanisms_.getByteString(i));
+        }
+        size += dataSize;
+        size += 1 * getAuthenticationMechanismsList().size();
+      }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
       return size;
@@ -893,6 +984,8 @@ public final class BitData {
         super.clear();
         rpcVersion_ = 0;
         bitField0_ = (bitField0_ & ~0x00000001);
+        authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
         return this;
       }
 
@@ -925,6 +1018,12 @@ public final class BitData {
           to_bitField0_ |= 0x00000001;
         }
         result.rpcVersion_ = rpcVersion_;
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          authenticationMechanisms_ = new com.google.protobuf.UnmodifiableLazyStringList(
+              authenticationMechanisms_);
+          bitField0_ = (bitField0_ & ~0x00000002);
+        }
+        result.authenticationMechanisms_ = authenticationMechanisms_;
         result.bitField0_ = to_bitField0_;
         onBuilt();
         return result;
@@ -944,6 +1043,16 @@ public final class BitData {
         if (other.hasRpcVersion()) {
           setRpcVersion(other.getRpcVersion());
         }
+        if (!other.authenticationMechanisms_.isEmpty()) {
+          if (authenticationMechanisms_.isEmpty()) {
+            authenticationMechanisms_ = other.authenticationMechanisms_;
+            bitField0_ = (bitField0_ & ~0x00000002);
+          } else {
+            ensureAuthenticationMechanismsIsMutable();
+            authenticationMechanisms_.addAll(other.authenticationMechanisms_);
+          }
+          onChanged();
+        }
         this.mergeUnknownFields(other.getUnknownFields());
         return this;
       }
@@ -1004,6 +1113,99 @@ public final class BitData {
         return this;
       }
 
+      // repeated string authenticationMechanisms = 2;
+      private com.google.protobuf.LazyStringList authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+      private void ensureAuthenticationMechanismsIsMutable() {
+        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
+          authenticationMechanisms_ = new com.google.protobuf.LazyStringArrayList(authenticationMechanisms_);
+          bitField0_ |= 0x00000002;
+         }
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public java.util.List<java.lang.String>
+          getAuthenticationMechanismsList() {
+        return java.util.Collections.unmodifiableList(authenticationMechanisms_);
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public int getAuthenticationMechanismsCount() {
+        return authenticationMechanisms_.size();
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public java.lang.String getAuthenticationMechanisms(int index) {
+        return authenticationMechanisms_.get(index);
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public com.google.protobuf.ByteString
+          getAuthenticationMechanismsBytes(int index) {
+        return authenticationMechanisms_.getByteString(index);
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public Builder setAuthenticationMechanisms(
+          int index, java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAuthenticationMechanismsIsMutable();
+        authenticationMechanisms_.set(index, value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public Builder addAuthenticationMechanisms(
+          java.lang.String value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAuthenticationMechanismsIsMutable();
+        authenticationMechanisms_.add(value);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public Builder addAllAuthenticationMechanisms(
+          java.lang.Iterable<java.lang.String> values) {
+        ensureAuthenticationMechanismsIsMutable();
+        super.addAll(values, authenticationMechanisms_);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public Builder clearAuthenticationMechanisms() {
+        authenticationMechanisms_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>repeated string authenticationMechanisms = 2;</code>
+       */
+      public Builder addAuthenticationMechanismsBytes(
+          com.google.protobuf.ByteString value) {
+        if (value == null) {
+    throw new NullPointerException();
+  }
+  ensureAuthenticationMechanismsIsMutable();
+        authenticationMechanisms_.add(value);
+        onChanged();
+        return this;
+      }
+
       // @@protoc_insertion_point(builder_scope:exec.bit.data.BitServerHandshake)
     }
 
@@ -2223,18 +2425,19 @@ public final class BitData {
       "nProtos.proto\032\022Coordination.proto\032\023UserB" +
       "itShared.proto\"]\n\022BitClientHandshake\022\023\n\013" +
       "rpc_version\030\001 \001(\005\0222\n\007channel\030\002 \001(\0162\027.exe" +
-      "c.shared.RpcChannel:\010BIT_DATA\")\n\022BitServ" +
-      "erHandshake\022\023\n\013rpc_version\030\001 \001(\005\"\214\002\n\023Fra" +
-      "gmentRecordBatch\022&\n\010query_id\030\001 \001(\0132\024.exe" +
-      "c.shared.QueryId\022#\n\033receiving_major_frag" +
-      "ment_id\030\002 \001(\005\022#\n\033receiving_minor_fragmen" +
-      "t_id\030\003 \003(\005\022!\n\031sending_major_fragment_id\030",
-      "\004 \001(\005\022!\n\031sending_minor_fragment_id\030\005 \001(\005" +
-      "\022(\n\003def\030\006 \001(\0132\033.exec.shared.RecordBatchD" +
-      "ef\022\023\n\013isLastBatch\030\007 \001(\010*D\n\007RpcType\022\r\n\tHA" +
-      "NDSHAKE\020\000\022\007\n\003ACK\020\001\022\013\n\007GOODBYE\020\002\022\024\n\020REQ_R" +
-      "ECORD_BATCH\020\003B(\n\033org.apache.drill.exec.p" +
-      "rotoB\007BitDataH\001"
+      "c.shared.RpcChannel:\010BIT_DATA\"K\n\022BitServ" +
+      "erHandshake\022\023\n\013rpc_version\030\001 \001(\005\022 \n\030auth" +
+      "enticationMechanisms\030\002 \003(\t\"\214\002\n\023FragmentR" +
+      "ecordBatch\022&\n\010query_id\030\001 \001(\0132\024.exec.shar" +
+      "ed.QueryId\022#\n\033receiving_major_fragment_i" +
+      "d\030\002 \001(\005\022#\n\033receiving_minor_fragment_id\030\003",
+      " \003(\005\022!\n\031sending_major_fragment_id\030\004 \001(\005\022" +
+      "!\n\031sending_minor_fragment_id\030\005 \001(\005\022(\n\003de" +
+      "f\030\006 \001(\0132\033.exec.shared.RecordBatchDef\022\023\n\013" +
+      "isLastBatch\030\007 \001(\010*V\n\007RpcType\022\r\n\tHANDSHAK" +
+      "E\020\000\022\007\n\003ACK\020\001\022\013\n\007GOODBYE\020\002\022\024\n\020REQ_RECORD_" +
+      "BATCH\020\003\022\020\n\014SASL_MESSAGE\020\004B(\n\033org.apache." +
+      "drill.exec.protoB\007BitDataH\001"
     };
     com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
       new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -2252,7 +2455,7 @@ public final class BitData {
           internal_static_exec_bit_data_BitServerHandshake_fieldAccessorTable = new
             com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_exec_bit_data_BitServerHandshake_descriptor,
-              new java.lang.String[] { "RpcVersion", });
+              new java.lang.String[] { "RpcVersion", "AuthenticationMechanisms", });
           internal_static_exec_bit_data_FragmentRecordBatch_descriptor =
             getDescriptor().getMessageTypes().get(2);
           internal_static_exec_bit_data_FragmentRecordBatch_fieldAccessorTable = new

http://git-wip-us.apache.org/repos/asf/drill/blob/e17baa84/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitControl.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitControl.java b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitControl.java
index 4a25512..04ac205 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitControl.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitControl.java
@@ -42,6 +42,8 @@ public final class SchemaBitControl
                 if(message.hasEndpoint())
                     output.writeObject(3, message.getEndpoint(), org.apache.drill.exec.proto.SchemaCoordinationProtos.DrillbitEndpoint.WRITE, false);
 
+                for(String authenticationMechanisms : message.getAuthenticationMechanismsList())
+                    output.writeString(4, authenticationMechanisms, true);
             }
             public boolean isInitialized(org.apache.drill.exec.proto.BitControl.BitControlHandshake message)
             {
@@ -91,6 +93,9 @@ public final class SchemaBitControl
                             builder.setEndpoint(input.mergeObject(org.apache.drill.exec.proto.CoordinationProtos.DrillbitEndpoint.newBuilder(), org.apache.drill.exec.proto.SchemaCoordinationProtos.DrillbitEndpoint.MERGE));
 
                             break;
+                        case 4:
+                            builder.addAuthenticationMechanisms(input.readString());
+                            break;
                         default:
                             input.handleUnknownField(number, this);
                     }
@@ -134,6 +139,7 @@ public final class SchemaBitControl
                 case 1: return "rpcVersion";
                 case 2: return "channel";
                 case 3: return "endpoint";
+                case 4: return "authenticationMechanisms";
                 default: return null;
             }
         }
@@ -148,6 +154,7 @@ public final class SchemaBitControl
             fieldMap.put("rpcVersion", 1);
             fieldMap.put("channel", 2);
             fieldMap.put("endpoint", 3);
+            fieldMap.put("authenticationMechanisms", 4);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/drill/blob/e17baa84/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitData.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitData.java b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitData.java
index 5684daf..65f6de1 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitData.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaBitData.java
@@ -155,6 +155,8 @@ public final class SchemaBitData
             {
                 if(message.hasRpcVersion())
                     output.writeInt32(1, message.getRpcVersion(), false);
+                for(String authenticationMechanisms : message.getAuthenticationMechanismsList())
+                    output.writeString(2, authenticationMechanisms, true);
             }
             public boolean isInitialized(org.apache.drill.exec.proto.BitData.BitServerHandshake message)
             {
@@ -197,6 +199,9 @@ public final class SchemaBitData
                         case 1:
                             builder.setRpcVersion(input.readInt32());
                             break;
+                        case 2:
+                            builder.addAuthenticationMechanisms(input.readString());
+                            break;
                         default:
                             input.handleUnknownField(number, this);
                     }
@@ -238,6 +243,7 @@ public final class SchemaBitData
             switch(number)
             {
                 case 1: return "rpcVersion";
+                case 2: return "authenticationMechanisms";
                 default: return null;
             }
         }
@@ -250,6 +256,7 @@ public final class SchemaBitData
         static
         {
             fieldMap.put("rpcVersion", 1);
+            fieldMap.put("authenticationMechanisms", 2);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/drill/blob/e17baa84/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserBitShared.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserBitShared.java b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserBitShared.java
index ef061b4..21c2589 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserBitShared.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserBitShared.java
@@ -2937,4 +2937,130 @@ public final class SchemaUserBitShared
         }
     }
 
+    public static final class SaslMessage
+    {
+        public static final org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.MessageSchema WRITE =
+            new org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.MessageSchema();
+        public static final org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.BuilderSchema MERGE =
+            new org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.BuilderSchema();
+        
+        public static class MessageSchema implements com.dyuproject.protostuff.Schema<org.apache.drill.exec.proto.UserBitShared.SaslMessage>
+        {
+            public void writeTo(com.dyuproject.protostuff.Output output, org.apache.drill.exec.proto.UserBitShared.SaslMessage message) throws java.io.IOException
+            {
+                if(message.hasMechanism())
+                    output.writeString(1, message.getMechanism(), false);
+                if(message.hasData())
+                    output.writeByteArray(2, message.getData().toByteArray(), false);
+
+                if(message.hasStatus())
+                    output.writeEnum(3, message.getStatus().getNumber(), false);
+            }
+            public boolean isInitialized(org.apache.drill.exec.proto.UserBitShared.SaslMessage message)
+            {
+                return message.isInitialized();
+            }
+            public java.lang.String getFieldName(int number)
+            {
+                return org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.getFieldName(number);
+            }
+            public int getFieldNumber(java.lang.String name)
+            {
+                return org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.getFieldNumber(name);
+            }
+            public java.lang.Class<org.apache.drill.exec.proto.UserBitShared.SaslMessage> typeClass()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.class;
+            }
+            public java.lang.String messageName()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.class.getSimpleName();
+            }
+            public java.lang.String messageFullName()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.class.getName();
+            }
+            //unused
+            public void mergeFrom(com.dyuproject.protostuff.Input input, org.apache.drill.exec.proto.UserBitShared.SaslMessage message) throws java.io.IOException {}
+            public org.apache.drill.exec.proto.UserBitShared.SaslMessage newMessage() { return null; }
+        }
+        public static class BuilderSchema implements com.dyuproject.protostuff.Schema<org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder>
+        {
+            public void mergeFrom(com.dyuproject.protostuff.Input input, org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder builder) throws java.io.IOException
+            {
+                for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
+                {
+                    switch(number)
+                    {
+                        case 0:
+                            return;
+                        case 1:
+                            builder.setMechanism(input.readString());
+                            break;
+                        case 2:
+                            builder.setData(com.google.protobuf.ByteString.copyFrom(input.readByteArray()));
+                            break;
+                        case 3:
+                            builder.setStatus(org.apache.drill.exec.proto.UserBitShared.SaslStatus.valueOf(input.readEnum()));
+                            break;
+                        default:
+                            input.handleUnknownField(number, this);
+                    }
+                }
+            }
+            public boolean isInitialized(org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder builder)
+            {
+                return builder.isInitialized();
+            }
+            public org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder newMessage()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.newBuilder();
+            }
+            public java.lang.String getFieldName(int number)
+            {
+                return org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.getFieldName(number);
+            }
+            public int getFieldNumber(java.lang.String name)
+            {
+                return org.apache.drill.exec.proto.SchemaUserBitShared.SaslMessage.getFieldNumber(name);
+            }
+            public java.lang.Class<org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder> typeClass()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder.class;
+            }
+            public java.lang.String messageName()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.class.getSimpleName();
+            }
+            public java.lang.String messageFullName()
+            {
+                return org.apache.drill.exec.proto.UserBitShared.SaslMessage.class.getName();
+            }
+            //unused
+            public void writeTo(com.dyuproject.protostuff.Output output, org.apache.drill.exec.proto.UserBitShared.SaslMessage.Builder builder) throws java.io.IOException {}
+        }
+        public static java.lang.String getFieldName(int number)
+        {
+            switch(number)
+            {
+                case 1: return "mechanism";
+                case 2: return "data";
+                case 3: return "status";
+                default: return null;
+            }
+        }
+        public static int getFieldNumber(java.lang.String name)
+        {
+            java.lang.Integer number = fieldMap.get(name);
+            return number == null ? 0 : number.intValue();
+        }
+        private static final java.util.HashMap<java.lang.String,java.lang.Integer> fieldMap = new java.util.HashMap<java.lang.String,java.lang.Integer>();
+        static
+        {
+            fieldMap.put("mechanism", 1);
+            fieldMap.put("data", 2);
+            fieldMap.put("status", 3);
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/drill/blob/e17baa84/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserProtos.java
----------------------------------------------------------------------
diff --git a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserProtos.java b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserProtos.java
index f2cc7b9..1adf7a7 100644
--- a/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserProtos.java
+++ b/protocol/src/main/java/org/apache/drill/exec/proto/SchemaUserProtos.java
@@ -431,6 +431,8 @@ public final class SchemaUserProtos
                 if(message.hasClientInfos())
                     output.writeObject(8, message.getClientInfos(), org.apache.drill.exec.proto.SchemaUserProtos.RpcEndpointInfos.WRITE, false);
 
+                if(message.hasSaslSupport())
+                    output.writeEnum(9, message.getSaslSupport().getNumber(), false);
             }
             public boolean isInitialized(org.apache.drill.exec.proto.UserProtos.UserToBitHandshake message)
             {
@@ -497,6 +499,9 @@ public final class SchemaUserProtos
                             builder.setClientInfos(input.mergeObject(org.apache.drill.exec.proto.UserProtos.RpcEndpointInfos.newBuilder(), org.apache.drill.exec.proto.SchemaUserProtos.RpcEndpointInfos.MERGE));
 
                             break;
+                        case 9:
+                            builder.setSaslSupport(org.apache.drill.exec.proto.UserProtos.SaslSupport.valueOf(input.readEnum()));
+                            break;
                         default:
                             input.handleUnknownField(number, this);
                     }
@@ -545,6 +550,7 @@ public final class SchemaUserProtos
                 case 6: return "supportComplexTypes";
                 case 7: return "supportTimeout";
                 case 8: return "clientInfos";
+                case 9: return "saslSupport";
                 default: return null;
             }
         }
@@ -564,6 +570,7 @@ public final class SchemaUserProtos
             fieldMap.put("supportComplexTypes", 6);
             fieldMap.put("supportTimeout", 7);
             fieldMap.put("clientInfos", 8);
+            fieldMap.put("saslSupport", 9);
         }
     }
 
@@ -972,6 +979,8 @@ public final class SchemaUserProtos
                 if(message.hasServerInfos())
                     output.writeObject(6, message.getServerInfos(), org.apache.drill.exec.proto.SchemaUserProtos.RpcEndpointInfos.WRITE, false);
 
+                for(String authenticationMechanisms : message.getAuthenticationMechanismsList())
+                    output.writeString(7, authenticationMechanisms, true);
             }
             public boolean isInitialized(org.apache.drill.exec.proto.UserProtos.BitToUserHandshake message)
             {
@@ -1027,6 +1036,9 @@ public final class SchemaUserProtos
                             builder.setServerInfos(input.mergeObject(org.apache.drill.exec.proto.UserProtos.RpcEndpointInfos.newBuilder(), org.apache.drill.exec.proto.SchemaUserProtos.RpcEndpointInfos.MERGE));
 
                             break;
+                        case 7:
+                            builder.addAuthenticationMechanisms(input.readString());
+                            break;
                         default:
                             input.handleUnknownField(number, this);
                     }
@@ -1072,6 +1084,7 @@ public final class SchemaUserProtos
                 case 4: return "errorId";
                 case 5: return "errorMessage";
                 case 6: return "serverInfos";
+                case 7: return "authenticationMechanisms";
                 default: return null;
             }
         }
@@ -1088,6 +1101,7 @@ public final class SchemaUserProtos
             fieldMap.put("errorId", 4);
             fieldMap.put("errorMessage", 5);
             fieldMap.put("serverInfos", 6);
+            fieldMap.put("authenticationMechanisms", 7);
         }
     }