diff options
author | Thierry Escande <thierry.escande@linux.intel.com> | 2013-02-15 04:43:05 -0500 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2013-03-10 18:10:55 -0400 |
commit | e0ae7bac06ccb90bb0cf7a3362730b48c7d7f1a8 (patch) | |
tree | 9c0ef047089dd244a9df4216d3e4a8348f6ef6e8 /net/nfc/llcp/llcp.h | |
parent | 8af362d124ce250cafb50cb488b4beb69fee3373 (diff) |
NFC: llcp: Service Name Lookup SDRES aggregation
This modifies the way SDRES PDUs are sent back. If multiple SDREQs are
received within a single SNL PDU, all SDRES replies are sent packed in
one SNL PDU too.
Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc/llcp/llcp.h')
-rw-r--r-- | net/nfc/llcp/llcp.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/net/nfc/llcp/llcp.h b/net/nfc/llcp/llcp.h index 5f117adac2e5..465f5953e2d1 100644 --- a/net/nfc/llcp/llcp.h +++ b/net/nfc/llcp/llcp.h | |||
@@ -46,6 +46,17 @@ struct llcp_sock_list { | |||
46 | rwlock_t lock; | 46 | rwlock_t lock; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | struct nfc_llcp_sdp_tlv { | ||
50 | u8 *tlv; | ||
51 | u8 tlv_len; | ||
52 | |||
53 | char *uri; | ||
54 | u8 tid; | ||
55 | u8 sap; | ||
56 | |||
57 | struct hlist_node node; | ||
58 | }; | ||
59 | |||
49 | struct nfc_llcp_local { | 60 | struct nfc_llcp_local { |
50 | struct list_head list; | 61 | struct list_head list; |
51 | struct nfc_dev *dev; | 62 | struct nfc_dev *dev; |
@@ -218,12 +229,15 @@ int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock, | |||
218 | /* Commands API */ | 229 | /* Commands API */ |
219 | void nfc_llcp_recv(void *data, struct sk_buff *skb, int err); | 230 | void nfc_llcp_recv(void *data, struct sk_buff *skb, int err); |
220 | u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length); | 231 | u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length); |
232 | struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdres_tlv(u8 tid, u8 sap); | ||
233 | void nfc_llcp_free_sdp_tlv(struct nfc_llcp_sdp_tlv *sdp); | ||
221 | void nfc_llcp_recv(void *data, struct sk_buff *skb, int err); | 234 | void nfc_llcp_recv(void *data, struct sk_buff *skb, int err); |
222 | int nfc_llcp_disconnect(struct nfc_llcp_sock *sock); | 235 | int nfc_llcp_disconnect(struct nfc_llcp_sock *sock); |
223 | int nfc_llcp_send_symm(struct nfc_dev *dev); | 236 | int nfc_llcp_send_symm(struct nfc_dev *dev); |
224 | int nfc_llcp_send_connect(struct nfc_llcp_sock *sock); | 237 | int nfc_llcp_send_connect(struct nfc_llcp_sock *sock); |
225 | int nfc_llcp_send_cc(struct nfc_llcp_sock *sock); | 238 | int nfc_llcp_send_cc(struct nfc_llcp_sock *sock); |
226 | int nfc_llcp_send_snl(struct nfc_llcp_local *local, u8 tid, u8 sap); | 239 | int nfc_llcp_send_snl_sdres(struct nfc_llcp_local *local, |
240 | struct hlist_head *tlv_list, size_t tlvs_len); | ||
227 | int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason); | 241 | int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason); |
228 | int nfc_llcp_send_disconnect(struct nfc_llcp_sock *sock); | 242 | int nfc_llcp_send_disconnect(struct nfc_llcp_sock *sock); |
229 | int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, | 243 | int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, |