> 2) Could netlink socket be used to solve this? .. and

Netlink is used to transfer information between kernel and user-space
processes.  It consists of a standard sockets-based interface for
user space processes and an internal kernel API for kernel modules.
netlink socket does not call dev_queue_xmit().

But here the requirement is to transfer the packet using Nordic's nRF24L01+.

AF_PACKET is used to output a raw packet from userspace to a device layer. Even AF_PACKET does that using proto_ops and net_proto_family. 

Regards
Manoj Nayak