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 <viresh.kumar@linaro.org>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Perry Hung <perry@leaflabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Perry Hung 2015-07-24 19:02:34 -04:00 committed by Greg Kroah-Hartman
parent 9c1552d7c4
commit e50b7be565
2 changed files with 12 additions and 0 deletions

View File

@ -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 */

View File

@ -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);