Search Linux Wireless

[RFC] NFC: NCI protocol proposal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Lauro, Aloisio, Samuel, all,

We would like to implement the NFC Controller Interface (NCI) protocol for the NFC subsystem.
The NCI is a standard communication protocol between an NFC Controller (NFCC) and a Device Host (DH), defined by the NFC Forum.

The NCI protocol implementation will be chip independent and responsible for:
	- Reset, initialization and configuration of the NFC controller
	- Sending commands/data to the NFC controller
	- Receiving responses/notifications/data from the NFC controller
	- Flow control for Control and Data Messages
	- Segmentation and reassembly for Control and Data Messages
	- An addressing scheme for NFC Execution Environments (NFCEE), e.g. 	secure element
	- An addressing scheme for Remote NFC Endpoints (NFCEE or RF targets) 	(via logical connections)

The NCI protocol will be added to the NFC subsystem below the NFC core:
 
+--------------------------------------+
|              USER SPACE              |
+--------------------------------------+
     ^                        ^
     | low-level              | control
     | data exchange          | operations
     |                        |
     |                        v
     |                  +-----------+
     | AF_NFC           |  netlink  |
     | socket           +-----------+
     | raw                    ^
     |                        |
     v                        v
+---------+             +-----------+
| rawsock | <---------> | NFC core  |
+---------+             +-----------+
                	            ^
                              |
                              v
              	      +-----------+
                        | NCI core  |
                        +-----------+
				      ^
				      |
				      V
			      +-----------+
			      |  driver   |
			      +-----------+

The driver will register itself to the NCI core, and in turn the NCI core will register itself to the NFC core.

We need to add the following 2 control operations (via generic netlink):
	- Dev_up, which turn on the NFC controller (this operation may take a 	few seconds, as it can download new FW to the NFC controller)
	- Dev_down, which turn off the NFC controller
The dev_up/down approach was also used with HCI protocol in the BlueZ project.

We suggest placing the NCI code in the net\nfc folder (beside the NFC code), as it's a generic and chip independent protocol, and not a driver.
This approach was also used with HCI protocol in the BlueZ project.
The driver itself will be located at drivers\nfc folder.

The NCI code will be divided in a few files, e.g. nci_core, nci_rsp, nci_ntf etc.

We'll appreciate your comments.

Thanks & BR
Ilan Elias
Texas Instruments
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux