]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - net/rxrpc/ar-internal.h
rxrpc: Implement service upgrade
[mirror_ubuntu-artful-kernel.git] / net / rxrpc / ar-internal.h
index 781fbc253b5a22c03aff487d5e9d0f7693936cb9..c1ebd886a53f625c34977e16bc6a8ce88cb7af0f 100644 (file)
@@ -144,8 +144,13 @@ struct rxrpc_sock {
 #define RXRPC_SECURITY_MAX     RXRPC_SECURITY_ENCRYPT
        bool                    exclusive;      /* Exclusive connection for a client socket */
        u16                     second_service; /* Additional service bound to the endpoint */
+       struct {
+               /* Service upgrade information */
+               u16             from;           /* Service ID to upgrade (if not 0) */
+               u16             to;             /* service ID to upgrade to */
+       } service_upgrade;
        sa_family_t             family;         /* Protocol family created with */
-       struct sockaddr_rxrpc   srx;            /* local address */
+       struct sockaddr_rxrpc   srx;            /* Primary Service/local addresses */
        struct sockaddr_rxrpc   connect_srx;    /* Default client address from connect() */
 };
 
@@ -861,7 +866,8 @@ static inline void rxrpc_put_connection(struct rxrpc_connection *conn)
 struct rxrpc_connection *rxrpc_find_service_conn_rcu(struct rxrpc_peer *,
                                                     struct sk_buff *);
 struct rxrpc_connection *rxrpc_prealloc_service_connection(struct rxrpc_net *, gfp_t);
-void rxrpc_new_incoming_connection(struct rxrpc_connection *, struct sk_buff *);
+void rxrpc_new_incoming_connection(struct rxrpc_sock *,
+                                  struct rxrpc_connection *, struct sk_buff *);
 void rxrpc_unpublish_service_conn(struct rxrpc_connection *);
 
 /*