diff --git a/controller/api/configurationManagement.go b/controller/api/configurationManagement.go
new file mode 100644
index 0000000000000000000000000000000000000000..986a192af234ae077cfb128121f38618cc6a23ac
--- /dev/null
+++ b/controller/api/configurationManagement.go
@@ -0,0 +1,38 @@
+package api
+
+import (
+	"context"
+	"time"
+
+	cpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
+	nbi "code.fbi.h-da.de/danet/gosdn/controller/northbound/client"
+)
+
+// ExportSDNConfig returns the SDN configuration.
+func ExportSDNConfig(ctx context.Context, addr, pid string) (*cpb.ExportSDNConfigResponse, error) {
+	configClient, err := nbi.ConfigurationManagementClient(addr, dialOptions...)
+	if err != nil {
+		return nil, err
+	}
+
+	req := &cpb.ExportSDNConfigRequest{
+		Timestamp: time.Now().UnixNano(),
+		Pid:       pid,
+	}
+	return configClient.ExportSDNConfig(ctx, req)
+}
+
+// ImportSDNConfig receives an SDN configuration and imports it.
+func ImportSDNConfig(ctx context.Context, addr, pid, sdnConfigData string) (*cpb.ImportSDNConfigResponse, error) {
+	configClient, err := nbi.ConfigurationManagementClient(addr, dialOptions...)
+	if err != nil {
+		return nil, err
+	}
+
+	req := &cpb.ImportSDNConfigRequest{
+		Timestamp:     time.Now().UnixNano(),
+		Pid:           pid,
+		SdnConfigData: sdnConfigData,
+	}
+	return configClient.ImportSDNConfig(ctx, req)
+}
diff --git a/controller/northbound/client/configurationManagement.go b/controller/northbound/client/configurationManagement.go
new file mode 100644
index 0000000000000000000000000000000000000000..8e008d173165d70a5098f3c0ff20605b4b089004
--- /dev/null
+++ b/controller/northbound/client/configurationManagement.go
@@ -0,0 +1,17 @@
+package client
+
+import (
+	cpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/configurationmanagement"
+	"google.golang.org/grpc"
+)
+
+// ConfigurationManagementClient returns a client for the gRPC ConfigurationManagement service. It takes
+// the address of the gRPC endpoint and optional grpc.DialOption
+// as argument.
+func ConfigurationManagementClient(addr string, opts ...grpc.DialOption) (cpb.ConfigurationManagementServiceClient, error) {
+	conn, err := grpc.Dial(addr, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return cpb.NewConfigurationManagementServiceClient(conn), nil
+}