caif: Use link layer MTU instead of fixed MTU
Previously CAIF supported maximum transfer size of ~4050. The transfer size is now calculated dynamically based on the link layers mtu size. Signed-off-by: Sjur Braendeland@stericsson.com Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
a7da1f55a8
commit
2aa40aef9d
@@ -50,6 +50,9 @@ struct caif_connect_request {
|
||||
* @client_layer: User implementation of client layer. This layer
|
||||
* MUST have receive and control callback functions
|
||||
* implemented.
|
||||
* @ifindex: Link layer interface index used for this connection.
|
||||
* @headroom: Head room needed by CAIF protocol.
|
||||
* @tailroom: Tail room needed by CAIF protocol.
|
||||
*
|
||||
* This function connects a CAIF channel. The Client must implement
|
||||
* the struct cflayer. This layer represents the Client layer and holds
|
||||
@@ -59,8 +62,9 @@ struct caif_connect_request {
|
||||
* E.g. CAIF Socket will call this function for each socket it connects
|
||||
* and have one client_layer instance for each socket.
|
||||
*/
|
||||
int caif_connect_client(struct caif_connect_request *config,
|
||||
struct cflayer *client_layer);
|
||||
int caif_connect_client(struct caif_connect_request *conn_req,
|
||||
struct cflayer *client_layer, int *ifindex,
|
||||
int *headroom, int *tailroom);
|
||||
|
||||
/**
|
||||
* caif_disconnect_client - Disconnects a client from the CAIF stack.
|
||||
|
||||
@@ -15,14 +15,8 @@ struct cfpktq;
|
||||
struct caif_payload_info;
|
||||
struct caif_packet_funcs;
|
||||
|
||||
#define CAIF_MAX_FRAMESIZE 4096
|
||||
#define CAIF_MAX_PAYLOAD_SIZE (4096 - 64)
|
||||
#define CAIF_NEEDED_HEADROOM (10)
|
||||
#define CAIF_NEEDED_TAILROOM (2)
|
||||
|
||||
#define CAIF_LAYER_NAME_SZ 16
|
||||
#define CAIF_SUCCESS 1
|
||||
#define CAIF_FAILURE 0
|
||||
|
||||
/**
|
||||
* caif_assert() - Assert function for CAIF.
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#ifndef CFCNFG_H_
|
||||
#define CFCNFG_H_
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <net/caif/caif_layer.h>
|
||||
#include <net/caif/cfctrl.h>
|
||||
|
||||
@@ -73,8 +74,8 @@ void cfcnfg_remove(struct cfcnfg *cfg);
|
||||
|
||||
void
|
||||
cfcnfg_add_phy_layer(struct cfcnfg *cnfg, enum cfcnfg_phy_type phy_type,
|
||||
void *dev, struct cflayer *phy_layer, u16 *phyid,
|
||||
enum cfcnfg_phy_preference pref,
|
||||
struct net_device *dev, struct cflayer *phy_layer,
|
||||
u16 *phyid, enum cfcnfg_phy_preference pref,
|
||||
bool fcs, bool stx);
|
||||
|
||||
/**
|
||||
@@ -114,11 +115,18 @@ void cfcnfg_release_adap_layer(struct cflayer *adap_layer);
|
||||
* @param: Link setup parameters.
|
||||
* @adap_layer: Specify the adaptation layer; the receive and
|
||||
* flow-control functions MUST be set in the structure.
|
||||
*
|
||||
* @ifindex: Link layer interface index used for this connection.
|
||||
* @proto_head: Protocol head-space needed by CAIF protocol,
|
||||
* excluding link layer.
|
||||
* @proto_tail: Protocol tail-space needed by CAIF protocol,
|
||||
* excluding link layer.
|
||||
*/
|
||||
int cfcnfg_add_adaptation_layer(struct cfcnfg *cnfg,
|
||||
struct cfctrl_link_param *param,
|
||||
struct cflayer *adap_layer);
|
||||
struct cflayer *adap_layer,
|
||||
int *ifindex,
|
||||
int *proto_head,
|
||||
int *proto_tail);
|
||||
|
||||
/**
|
||||
* cfcnfg_get_phyid() - Get physical ID, given type.
|
||||
|
||||
Reference in New Issue
Block a user