From e50b7be565a888ff0b1ac38247cc3c34e1f9c2f7 Mon Sep 17 00:00:00 2001 From: Perry Hung Date: Fri, 24 Jul 2015 19:02:34 -0400 Subject: [PATCH] greybus: svc: add flags and traffic class parameter to connection create op The AP needs to be able to specify L4 CPort flags and traffic class parameters on a connection-by-connection basis. Extend the connection create operation to accept these. Since there's no policy to decide these, fix them at TC0 with end-to-end-flow control, controlled segment dropping, and CPort safety valve enabled. Tested-by: Viresh Kumar Reviewed-by: Viresh Kumar Signed-off-by: Perry Hung Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/greybus_protocols.h | 2 ++ drivers/staging/greybus/svc.c | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h index 5b97073f4100..e2d38dfe06b6 100644 --- a/drivers/staging/greybus/greybus_protocols.h +++ b/drivers/staging/greybus/greybus_protocols.h @@ -606,6 +606,8 @@ struct gb_svc_conn_create_request { __u16 cport1_id; __u8 intf2_id; __u16 cport2_id; + __u8 tc; + __u8 flags; }; /* connection create response has no payload */ diff --git a/drivers/staging/greybus/svc.c b/drivers/staging/greybus/svc.c index b718a881a7e3..b94a84aca0d8 100644 --- a/drivers/staging/greybus/svc.c +++ b/drivers/staging/greybus/svc.c @@ -9,6 +9,10 @@ #include "greybus.h" +#define CPORT_FLAGS_E2EFC (1) +#define CPORT_FLAGS_CSD_N (2) +#define CPORT_FLAGS_CSV_N (4) + struct gb_svc { struct gb_connection *connection; u8 version_major; @@ -98,6 +102,12 @@ static int connection_create_operation(struct gb_svc *svc, request.cport1_id = cport1_id; request.intf2_id = intf2_id; request.cport2_id = cport2_id; + /* + * XXX: fix connections paramaters to TC0 and all CPort flags + * for now. + */ + request.tc = 0; + request.flags = CPORT_FLAGS_CSV_N | CPORT_FLAGS_E2EFC; return gb_operation_sync(svc->connection, GB_SVC_TYPE_CONN_CREATE, &request, sizeof(request), NULL, 0); -- 2.11.0