diff --git a/network/common/pom.xml b/common/network-common/pom.xml
similarity index 100%
rename from network/common/pom.xml
rename to common/network-common/pom.xml
diff --git a/network/common/src/main/java/org/apache/spark/network/TransportContext.java b/common/network-common/src/main/java/org/apache/spark/network/TransportContext.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/TransportContext.java
rename to common/network-common/src/main/java/org/apache/spark/network/TransportContext.java
diff --git a/network/common/src/main/java/org/apache/spark/network/buffer/FileSegmentManagedBuffer.java b/common/network-common/src/main/java/org/apache/spark/network/buffer/FileSegmentManagedBuffer.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/buffer/FileSegmentManagedBuffer.java
rename to common/network-common/src/main/java/org/apache/spark/network/buffer/FileSegmentManagedBuffer.java
diff --git a/network/common/src/main/java/org/apache/spark/network/buffer/LazyFileRegion.java b/common/network-common/src/main/java/org/apache/spark/network/buffer/LazyFileRegion.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/buffer/LazyFileRegion.java
rename to common/network-common/src/main/java/org/apache/spark/network/buffer/LazyFileRegion.java
diff --git a/network/common/src/main/java/org/apache/spark/network/buffer/ManagedBuffer.java b/common/network-common/src/main/java/org/apache/spark/network/buffer/ManagedBuffer.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/buffer/ManagedBuffer.java
rename to common/network-common/src/main/java/org/apache/spark/network/buffer/ManagedBuffer.java
diff --git a/network/common/src/main/java/org/apache/spark/network/buffer/NettyManagedBuffer.java b/common/network-common/src/main/java/org/apache/spark/network/buffer/NettyManagedBuffer.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/buffer/NettyManagedBuffer.java
rename to common/network-common/src/main/java/org/apache/spark/network/buffer/NettyManagedBuffer.java
diff --git a/network/common/src/main/java/org/apache/spark/network/buffer/NioManagedBuffer.java b/common/network-common/src/main/java/org/apache/spark/network/buffer/NioManagedBuffer.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/buffer/NioManagedBuffer.java
rename to common/network-common/src/main/java/org/apache/spark/network/buffer/NioManagedBuffer.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/ChunkFetchFailureException.java b/common/network-common/src/main/java/org/apache/spark/network/client/ChunkFetchFailureException.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/ChunkFetchFailureException.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/ChunkFetchFailureException.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/ChunkReceivedCallback.java b/common/network-common/src/main/java/org/apache/spark/network/client/ChunkReceivedCallback.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/ChunkReceivedCallback.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/ChunkReceivedCallback.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/RpcResponseCallback.java b/common/network-common/src/main/java/org/apache/spark/network/client/RpcResponseCallback.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/RpcResponseCallback.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/RpcResponseCallback.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/StreamCallback.java b/common/network-common/src/main/java/org/apache/spark/network/client/StreamCallback.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/StreamCallback.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/StreamCallback.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/StreamInterceptor.java b/common/network-common/src/main/java/org/apache/spark/network/client/StreamInterceptor.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/StreamInterceptor.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/StreamInterceptor.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/TransportClient.java b/common/network-common/src/main/java/org/apache/spark/network/client/TransportClient.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/TransportClient.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/TransportClient.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/TransportClientBootstrap.java b/common/network-common/src/main/java/org/apache/spark/network/client/TransportClientBootstrap.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/TransportClientBootstrap.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/TransportClientBootstrap.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/TransportClientFactory.java b/common/network-common/src/main/java/org/apache/spark/network/client/TransportClientFactory.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/TransportClientFactory.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/TransportClientFactory.java
diff --git a/network/common/src/main/java/org/apache/spark/network/client/TransportResponseHandler.java b/common/network-common/src/main/java/org/apache/spark/network/client/TransportResponseHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/client/TransportResponseHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/client/TransportResponseHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/AbstractMessage.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/AbstractMessage.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/AbstractMessage.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/AbstractMessage.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/AbstractResponseMessage.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/AbstractResponseMessage.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/AbstractResponseMessage.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/AbstractResponseMessage.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/ChunkFetchFailure.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/ChunkFetchFailure.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/ChunkFetchFailure.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/ChunkFetchFailure.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/ChunkFetchRequest.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/ChunkFetchRequest.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/ChunkFetchRequest.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/ChunkFetchRequest.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/ChunkFetchSuccess.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/ChunkFetchSuccess.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/ChunkFetchSuccess.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/ChunkFetchSuccess.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/Encodable.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/Encodable.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/Encodable.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/Encodable.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/Encoders.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/Encoders.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/Encoders.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/Encoders.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/Message.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/Message.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/Message.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/Message.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/MessageDecoder.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/MessageDecoder.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/MessageDecoder.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/MessageDecoder.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/MessageEncoder.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/MessageEncoder.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/MessageEncoder.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/MessageEncoder.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/MessageWithHeader.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/MessageWithHeader.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/MessageWithHeader.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/MessageWithHeader.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/OneWayMessage.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/OneWayMessage.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/OneWayMessage.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/OneWayMessage.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/RequestMessage.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/RequestMessage.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/RequestMessage.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/RequestMessage.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/ResponseMessage.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/ResponseMessage.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/ResponseMessage.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/ResponseMessage.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/RpcFailure.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/RpcFailure.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/RpcFailure.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/RpcFailure.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/RpcRequest.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/RpcRequest.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/RpcRequest.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/RpcRequest.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/RpcResponse.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/RpcResponse.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/RpcResponse.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/RpcResponse.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/StreamChunkId.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/StreamChunkId.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/StreamChunkId.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/StreamChunkId.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/StreamFailure.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/StreamFailure.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/StreamFailure.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/StreamFailure.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/StreamRequest.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/StreamRequest.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/StreamRequest.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/StreamRequest.java
diff --git a/network/common/src/main/java/org/apache/spark/network/protocol/StreamResponse.java b/common/network-common/src/main/java/org/apache/spark/network/protocol/StreamResponse.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/protocol/StreamResponse.java
rename to common/network-common/src/main/java/org/apache/spark/network/protocol/StreamResponse.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SaslClientBootstrap.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SaslClientBootstrap.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SaslClientBootstrap.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SaslClientBootstrap.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SaslEncryption.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SaslEncryption.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SaslEncryption.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SaslEncryption.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SaslEncryptionBackend.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SaslEncryptionBackend.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SaslEncryptionBackend.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SaslEncryptionBackend.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SaslMessage.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SaslMessage.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SaslMessage.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SaslMessage.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SaslRpcHandler.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SaslRpcHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SaslRpcHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SaslRpcHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SaslServerBootstrap.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SaslServerBootstrap.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SaslServerBootstrap.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SaslServerBootstrap.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SecretKeyHolder.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SecretKeyHolder.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SecretKeyHolder.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SecretKeyHolder.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SparkSaslClient.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SparkSaslClient.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SparkSaslClient.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SparkSaslClient.java
diff --git a/network/common/src/main/java/org/apache/spark/network/sasl/SparkSaslServer.java b/common/network-common/src/main/java/org/apache/spark/network/sasl/SparkSaslServer.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/sasl/SparkSaslServer.java
rename to common/network-common/src/main/java/org/apache/spark/network/sasl/SparkSaslServer.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/MessageHandler.java b/common/network-common/src/main/java/org/apache/spark/network/server/MessageHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/MessageHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/MessageHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/NoOpRpcHandler.java b/common/network-common/src/main/java/org/apache/spark/network/server/NoOpRpcHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/NoOpRpcHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/NoOpRpcHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/OneForOneStreamManager.java b/common/network-common/src/main/java/org/apache/spark/network/server/OneForOneStreamManager.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/OneForOneStreamManager.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/OneForOneStreamManager.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/RpcHandler.java b/common/network-common/src/main/java/org/apache/spark/network/server/RpcHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/RpcHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/RpcHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/StreamManager.java b/common/network-common/src/main/java/org/apache/spark/network/server/StreamManager.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/StreamManager.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/StreamManager.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/TransportChannelHandler.java b/common/network-common/src/main/java/org/apache/spark/network/server/TransportChannelHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/TransportChannelHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/TransportChannelHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/TransportRequestHandler.java b/common/network-common/src/main/java/org/apache/spark/network/server/TransportRequestHandler.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/TransportRequestHandler.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/TransportRequestHandler.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/TransportServer.java b/common/network-common/src/main/java/org/apache/spark/network/server/TransportServer.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/TransportServer.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/TransportServer.java
diff --git a/network/common/src/main/java/org/apache/spark/network/server/TransportServerBootstrap.java b/common/network-common/src/main/java/org/apache/spark/network/server/TransportServerBootstrap.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/server/TransportServerBootstrap.java
rename to common/network-common/src/main/java/org/apache/spark/network/server/TransportServerBootstrap.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/ByteArrayWritableChannel.java b/common/network-common/src/main/java/org/apache/spark/network/util/ByteArrayWritableChannel.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/ByteArrayWritableChannel.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/ByteArrayWritableChannel.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/ByteUnit.java b/common/network-common/src/main/java/org/apache/spark/network/util/ByteUnit.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/ByteUnit.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/ByteUnit.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/ConfigProvider.java b/common/network-common/src/main/java/org/apache/spark/network/util/ConfigProvider.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/ConfigProvider.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/ConfigProvider.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/IOMode.java b/common/network-common/src/main/java/org/apache/spark/network/util/IOMode.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/IOMode.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/IOMode.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/JavaUtils.java b/common/network-common/src/main/java/org/apache/spark/network/util/JavaUtils.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/JavaUtils.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/JavaUtils.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/LimitedInputStream.java b/common/network-common/src/main/java/org/apache/spark/network/util/LimitedInputStream.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/LimitedInputStream.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/LimitedInputStream.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/MapConfigProvider.java b/common/network-common/src/main/java/org/apache/spark/network/util/MapConfigProvider.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/MapConfigProvider.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/MapConfigProvider.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/NettyUtils.java b/common/network-common/src/main/java/org/apache/spark/network/util/NettyUtils.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/NettyUtils.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/NettyUtils.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/SystemPropertyConfigProvider.java b/common/network-common/src/main/java/org/apache/spark/network/util/SystemPropertyConfigProvider.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/SystemPropertyConfigProvider.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/SystemPropertyConfigProvider.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/TransportConf.java b/common/network-common/src/main/java/org/apache/spark/network/util/TransportConf.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/TransportConf.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/TransportConf.java
diff --git a/network/common/src/main/java/org/apache/spark/network/util/TransportFrameDecoder.java b/common/network-common/src/main/java/org/apache/spark/network/util/TransportFrameDecoder.java
similarity index 100%
rename from network/common/src/main/java/org/apache/spark/network/util/TransportFrameDecoder.java
rename to common/network-common/src/main/java/org/apache/spark/network/util/TransportFrameDecoder.java
diff --git a/network/common/src/test/java/org/apache/spark/network/ChunkFetchIntegrationSuite.java b/common/network-common/src/test/java/org/apache/spark/network/ChunkFetchIntegrationSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/ChunkFetchIntegrationSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/ChunkFetchIntegrationSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/ProtocolSuite.java b/common/network-common/src/test/java/org/apache/spark/network/ProtocolSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/ProtocolSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/ProtocolSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/RequestTimeoutIntegrationSuite.java b/common/network-common/src/test/java/org/apache/spark/network/RequestTimeoutIntegrationSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/RequestTimeoutIntegrationSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/RequestTimeoutIntegrationSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/RpcIntegrationSuite.java b/common/network-common/src/test/java/org/apache/spark/network/RpcIntegrationSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/RpcIntegrationSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/RpcIntegrationSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/StreamSuite.java b/common/network-common/src/test/java/org/apache/spark/network/StreamSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/StreamSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/StreamSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/TestManagedBuffer.java b/common/network-common/src/test/java/org/apache/spark/network/TestManagedBuffer.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/TestManagedBuffer.java
rename to common/network-common/src/test/java/org/apache/spark/network/TestManagedBuffer.java
diff --git a/network/common/src/test/java/org/apache/spark/network/TestUtils.java b/common/network-common/src/test/java/org/apache/spark/network/TestUtils.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/TestUtils.java
rename to common/network-common/src/test/java/org/apache/spark/network/TestUtils.java
diff --git a/network/common/src/test/java/org/apache/spark/network/TransportClientFactorySuite.java b/common/network-common/src/test/java/org/apache/spark/network/TransportClientFactorySuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/TransportClientFactorySuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/TransportClientFactorySuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/TransportResponseHandlerSuite.java b/common/network-common/src/test/java/org/apache/spark/network/TransportResponseHandlerSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/TransportResponseHandlerSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/TransportResponseHandlerSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/protocol/MessageWithHeaderSuite.java b/common/network-common/src/test/java/org/apache/spark/network/protocol/MessageWithHeaderSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/protocol/MessageWithHeaderSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/protocol/MessageWithHeaderSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/sasl/SparkSaslSuite.java b/common/network-common/src/test/java/org/apache/spark/network/sasl/SparkSaslSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/sasl/SparkSaslSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/sasl/SparkSaslSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/server/OneForOneStreamManagerSuite.java b/common/network-common/src/test/java/org/apache/spark/network/server/OneForOneStreamManagerSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/server/OneForOneStreamManagerSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/server/OneForOneStreamManagerSuite.java
diff --git a/network/common/src/test/java/org/apache/spark/network/util/TransportFrameDecoderSuite.java b/common/network-common/src/test/java/org/apache/spark/network/util/TransportFrameDecoderSuite.java
similarity index 100%
rename from network/common/src/test/java/org/apache/spark/network/util/TransportFrameDecoderSuite.java
rename to common/network-common/src/test/java/org/apache/spark/network/util/TransportFrameDecoderSuite.java
diff --git a/network/common/src/test/resources/log4j.properties b/common/network-common/src/test/resources/log4j.properties
similarity index 100%
rename from network/common/src/test/resources/log4j.properties
rename to common/network-common/src/test/resources/log4j.properties
diff --git a/network/shuffle/pom.xml b/common/network-shuffle/pom.xml
similarity index 100%
rename from network/shuffle/pom.xml
rename to common/network-shuffle/pom.xml
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/sasl/ShuffleSecretManager.java b/common/network-shuffle/src/main/java/org/apache/spark/network/sasl/ShuffleSecretManager.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/sasl/ShuffleSecretManager.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/sasl/ShuffleSecretManager.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/BlockFetchingListener.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/BlockFetchingListener.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/BlockFetchingListener.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/BlockFetchingListener.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandler.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandler.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandler.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandler.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleClient.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/OneForOneBlockFetcher.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/OneForOneBlockFetcher.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/OneForOneBlockFetcher.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/OneForOneBlockFetcher.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/RetryingBlockFetcher.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/RetryingBlockFetcher.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/RetryingBlockFetcher.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/RetryingBlockFetcher.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/ShuffleClient.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ShuffleClient.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/ShuffleClient.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ShuffleClient.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/mesos/MesosExternalShuffleClient.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/mesos/MesosExternalShuffleClient.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/mesos/MesosExternalShuffleClient.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/mesos/MesosExternalShuffleClient.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/BlockTransferMessage.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/BlockTransferMessage.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/BlockTransferMessage.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/BlockTransferMessage.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/ExecutorShuffleInfo.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/ExecutorShuffleInfo.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/ExecutorShuffleInfo.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/ExecutorShuffleInfo.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/OpenBlocks.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/OpenBlocks.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/OpenBlocks.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/OpenBlocks.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/RegisterExecutor.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/RegisterExecutor.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/RegisterExecutor.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/RegisterExecutor.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/StreamHandle.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/StreamHandle.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/StreamHandle.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/StreamHandle.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/UploadBlock.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/UploadBlock.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/UploadBlock.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/UploadBlock.java
diff --git a/network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/mesos/RegisterDriver.java b/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/mesos/RegisterDriver.java
similarity index 100%
rename from network/shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/mesos/RegisterDriver.java
rename to common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/protocol/mesos/RegisterDriver.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/sasl/SaslIntegrationSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/sasl/SaslIntegrationSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/sasl/SaslIntegrationSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/sasl/SaslIntegrationSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/BlockTransferMessagesSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/BlockTransferMessagesSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/BlockTransferMessagesSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/BlockTransferMessagesSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandlerSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandlerSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandlerSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockHandlerSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolverSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolverSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolverSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolverSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleCleanupSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleCleanupSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleCleanupSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleCleanupSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleIntegrationSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleIntegrationSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleIntegrationSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleIntegrationSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleSecuritySuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleSecuritySuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleSecuritySuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/ExternalShuffleSecuritySuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/OneForOneBlockFetcherSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/OneForOneBlockFetcherSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/OneForOneBlockFetcherSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/OneForOneBlockFetcherSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/RetryingBlockFetcherSuite.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/RetryingBlockFetcherSuite.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/RetryingBlockFetcherSuite.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/RetryingBlockFetcherSuite.java
diff --git a/network/shuffle/src/test/java/org/apache/spark/network/shuffle/TestShuffleDataContext.java b/common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/TestShuffleDataContext.java
similarity index 100%
rename from network/shuffle/src/test/java/org/apache/spark/network/shuffle/TestShuffleDataContext.java
rename to common/network-shuffle/src/test/java/org/apache/spark/network/shuffle/TestShuffleDataContext.java
diff --git a/network/yarn/pom.xml b/common/network-yarn/pom.xml
similarity index 100%
rename from network/yarn/pom.xml
rename to common/network-yarn/pom.xml
diff --git a/network/yarn/src/main/java/org/apache/spark/network/yarn/YarnShuffleService.java b/common/network-yarn/src/main/java/org/apache/spark/network/yarn/YarnShuffleService.java
similarity index 100%
rename from network/yarn/src/main/java/org/apache/spark/network/yarn/YarnShuffleService.java
rename to common/network-yarn/src/main/java/org/apache/spark/network/yarn/YarnShuffleService.java
diff --git a/network/yarn/src/main/java/org/apache/spark/network/yarn/util/HadoopConfigProvider.java b/common/network-yarn/src/main/java/org/apache/spark/network/yarn/util/HadoopConfigProvider.java
similarity index 100%
rename from network/yarn/src/main/java/org/apache/spark/network/yarn/util/HadoopConfigProvider.java
rename to common/network-yarn/src/main/java/org/apache/spark/network/yarn/util/HadoopConfigProvider.java
diff --git a/dev/sparktestsupport/modules.py b/dev/sparktestsupport/modules.py
index 07c3078e454903a6c185bf22f90e923de8fbc676..4e04672ad39e0fbe2f5613b17639f9357da731f5 100644
--- a/dev/sparktestsupport/modules.py
+++ b/dev/sparktestsupport/modules.py
@@ -473,11 +473,11 @@ yarn = Module(
     dependencies=[],
     source_file_regexes=[
         "yarn/",
-        "network/yarn/",
+        "common/network-yarn/",
     ],
     sbt_test_goals=[
         "yarn/test",
-        "network-yarn/test",
+        "common/network-yarn/test",
     ],
     test_tags=[
         "org.apache.spark.tags.ExtendedYarnTest"
diff --git a/docs/job-scheduling.md b/docs/job-scheduling.md
index 00b6a18836a54b29d7ae932e2611ac524b823b4a..083c020caa5db6beff7fa89d00c749ba7f17d8cf 100644
--- a/docs/job-scheduling.md
+++ b/docs/job-scheduling.md
@@ -88,7 +88,7 @@ In YARN mode, start the shuffle service on each `NodeManager` as follows:
 1. Build Spark with the [YARN profile](building-spark.html). Skip this step if you are using a
 pre-packaged distribution.
 2. Locate the `spark-<version>-yarn-shuffle.jar`. This should be under
-`$SPARK_HOME/network/yarn/target/scala-<version>` if you are building Spark yourself, and under
+`$SPARK_HOME/common/network-yarn/target/scala-<version>` if you are building Spark yourself, and under
 `lib` if you are using a distribution.
 2. Add this jar to the classpath of all `NodeManager`s in your cluster.
 3. In the `yarn-site.xml` on each node, add `spark_shuffle` to `yarn.nodemanager.aux-services`,
diff --git a/launcher/src/main/java/org/apache/spark/launcher/AbstractCommandBuilder.java b/launcher/src/main/java/org/apache/spark/launcher/AbstractCommandBuilder.java
index 68af14397ba81671ee74afe7066fdc8fa413760b..45c2c008f6dc46350508745a838ea46520816aa2 100644
--- a/launcher/src/main/java/org/apache/spark/launcher/AbstractCommandBuilder.java
+++ b/launcher/src/main/java/org/apache/spark/launcher/AbstractCommandBuilder.java
@@ -148,7 +148,8 @@ abstract class AbstractCommandBuilder {
       String scala = getScalaVersion();
       List<String> projects = Arrays.asList("core", "repl", "mllib", "graphx",
         "streaming", "tools", "sql/catalyst", "sql/core", "sql/hive", "sql/hive-thriftserver",
-        "yarn", "launcher", "network/common", "network/shuffle", "network/yarn");
+        "yarn", "launcher",
+        "common/network-common", "common/network-shuffle", "common/network-yarn");
       if (prependClasses) {
         if (!isTesting) {
           System.err.println(
diff --git a/make-distribution.sh b/make-distribution.sh
index 20998144f0b5015c6037ff5c7bd43f0b911a5d1e..ac90ea317a6fcc14c1762bc7cc50b98badc6aacf 100755
--- a/make-distribution.sh
+++ b/make-distribution.sh
@@ -169,7 +169,7 @@ cp "$SPARK_HOME"/assembly/target/scala*/*assembly*hadoop*.jar "$DISTDIR/lib/"
 cp "$SPARK_HOME"/examples/target/scala*/spark-examples*.jar "$DISTDIR/lib/"
 # This will fail if the -Pyarn profile is not provided
 # In this case, silence the error and ignore the return code of this command
-cp "$SPARK_HOME"/network/yarn/target/scala*/spark-*-yarn-shuffle.jar "$DISTDIR/lib/" &> /dev/null || :
+cp "$SPARK_HOME"/common/network-yarn/target/scala*/spark-*-yarn-shuffle.jar "$DISTDIR/lib/" &> /dev/null || :
 
 # Copy example sources (needed for python and SQL)
 mkdir -p "$DISTDIR/examples/src/main"
diff --git a/pom.xml b/pom.xml
index bcf04d48c2f6fd5e201c4a4676edf1c9e0d57a0f..2376e307ced18bd780628fa0dcd6617b16791c4d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,13 +87,13 @@
 
   <modules>
     <module>common/sketch</module>
+    <module>common/network-common</module>
+    <module>common/network-shuffle</module>
     <module>tags</module>
     <module>core</module>
     <module>graphx</module>
     <module>mllib</module>
     <module>tools</module>
-    <module>network/common</module>
-    <module>network/shuffle</module>
     <module>streaming</module>
     <module>sql/catalyst</module>
     <module>sql/core</module>
@@ -2442,7 +2442,7 @@
       <id>yarn</id>
       <modules>
         <module>yarn</module>
-        <module>network/yarn</module>
+        <module>common/network-yarn</module>
       </modules>
     </profile>