From adbab066c9ef16c4232bc9d4d7b9b7925404b86b Mon Sep 17 00:00:00 2001 From: bharnden <32446120+bharnden@users.noreply.github.com> Date: Tue, 29 Oct 2019 13:37:37 -0700 Subject: [PATCH] added wlan configs to grpc.StartSession --- daemon/core/api/grpc/client.py | 18 ++++++++++++++++-- daemon/core/api/grpc/server.py | 15 ++++++++++++--- daemon/proto/core/api/grpc/core.proto | 10 ++++++++-- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/daemon/core/api/grpc/client.py b/daemon/core/api/grpc/client.py index c10e3d4e..5c5ee72c 100644 --- a/daemon/core/api/grpc/client.py +++ b/daemon/core/api/grpc/client.py @@ -148,7 +148,16 @@ class CoreGrpcClient: self.stub = None self.channel = None - def start_session(self, session_id, nodes, links, location=None, hooks=None): + def start_session( + self, + session_id, + nodes, + links, + location=None, + hooks=None, + emane_config=None, + wlan_configs=None, + ): """ Start a session. @@ -157,6 +166,8 @@ class CoreGrpcClient: :param list links: list of links to create :param core_pb2.SessionLocation location: location to set :param list[core_pb2.Hook] hooks: session hooks to set + :param dict emane_config: emane configuration to set + :param list wlan_configs: wlan configurations to set :return: """ request = core_pb2.StartSessionRequest( @@ -165,6 +176,8 @@ class CoreGrpcClient: links=links, location=location, hooks=hooks, + emane_config=emane_config, + wlan_configs=wlan_configs, ) return self.stub.StartSession(request) @@ -793,8 +806,9 @@ class CoreGrpcClient: :rtype: core_pb2.SetWlanConfigResponse :raises grpc.RpcError: when session doesn't exist """ + wlan_config = core_pb2.WlanConfig(node_id=node_id, config=config) request = core_pb2.SetWlanConfigRequest( - session_id=session_id, node_id=node_id, config=config + session_id=session_id, wlan_config=wlan_config ) return self.stub.SetWlanConfig(request) diff --git a/daemon/core/api/grpc/server.py b/daemon/core/api/grpc/server.py index f78f5ead..ac7aba1e 100644 --- a/daemon/core/api/grpc/server.py +++ b/daemon/core/api/grpc/server.py @@ -134,7 +134,15 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): grpcutils.create_nodes(session, request.nodes) # emane configs + config = session.emane.get_configs() + config.update(request.emane_config) + # wlan configs + for wlan_config in request.wlan_configs: + session.mobility.set_model_config( + wlan_config.node_id, BasicRangeModel.name, wlan_config.config + ) + # mobility configs # create links @@ -1218,12 +1226,13 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer): """ logging.debug("set wlan config: %s", request) session = self.get_session(request.session_id, context) + wlan_config = request.wlan_config session.mobility.set_model_config( - request.node_id, BasicRangeModel.name, request.config + wlan_config.node_id, BasicRangeModel.name, wlan_config.config ) if session.state == EventTypes.RUNTIME_STATE.value: - node = self.get_node(session, request.node_id, context) - node.updatemodel(request.config) + node = self.get_node(session, wlan_config.node_id, context) + node.updatemodel(wlan_config.config) return core_pb2.SetWlanConfigResponse(result=True) def GetEmaneConfig(self, request, context): diff --git a/daemon/proto/core/api/grpc/core.proto b/daemon/proto/core/api/grpc/core.proto index e8722b94..fa65442f 100644 --- a/daemon/proto/core/api/grpc/core.proto +++ b/daemon/proto/core/api/grpc/core.proto @@ -136,6 +136,8 @@ message StartSessionRequest { repeated Link links = 3; repeated Hook hooks = 4; SessionLocation location = 5; + map emane_config = 6; + repeated WlanConfig wlan_configs = 7; } message StartSessionResponse { @@ -575,8 +577,7 @@ message GetWlanConfigResponse { message SetWlanConfigRequest { int32 session_id = 1; - int32 node_id = 2; - map config = 3; + WlanConfig wlan_config = 2; } message SetWlanConfigResponse { @@ -681,6 +682,11 @@ message EmaneLinkResponse { } // data structures for messages below +message WlanConfig { + int32 node_id = 1; + map config = 2; +} + message MessageType { enum Enum { NONE = 0;