net: fix qemu_can_send_packet logic

If any of the clients is not ready to receive (ie it has a can_receive
callback and can_receive() returns false), we don't want to start
sending, else this client may miss/discard the packet.

I got this behaviour with the following setup :
the emulated machine is using an USB-ethernet adapter, it is connected
to the network using SLIRP and I'm dumping the traffic in a .pcap file.
As per the following command line :
-net nic,model=usb,vlan=1 -net user,vlan=1 -net dump,vlan=1,file=/tmp/pkt.pcap
Every time that two packets are coming in a row from the host, the
usb-net code will receive the first one, then returns 0 to can_receive
call since it has a 1 packet long queue. But as the dump code is always
ready to receive, qemu_can_send_packet will return true and the next
packet will discard the previous one in the usb-net code.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Bug 871475 - 1/6: don't mix cid with the index to data_context array.

Signed-off-by: You-Sheng Yang (楊有勝) <vicamo@gmail.com>
Bug 871475 - 2/6: fix +CGDCONT/+CGACT

Three things to fix here:

1. From 3GPP TS 27.007 subclause 10.1.10 "PDP context activate or
deactivate +CGACT", "The read command returns the current activation
states for all the defined PDP contexts." but now we return only
active ones.

2. From 3GPP TS 27.007 subclause 10.1.1 "Define PDP context
+CGDCONT", "(about <PDP_addr>) The read form of the command will
continue to return the null string even if an address has been
allocated during the PDP startup procedure." So we should return the
given <PDP_addr> in the response of the read form.

3. Return correct supported cid range <1-MAX_DATA_CONTEXTS> in the
test form of +CGDCONT.

Signed-off-by: You-Sheng Yang (楊有勝) <vicamo@gmail.com>
Bug 871475 - 3/6: intantiate additional rmnet nics.

Create <MAX_NET_CLIENTS> additional NIC instances when radio is
enabled. These NICs will have the name "rmnet<N>".

Signed-off-by: You-Sheng Yang (楊有勝) <vicamo@gmail.com>
Bug 871475 - 4/6: support link down for SMC91C111

Original SMC91C111 doesn't support link up/down reporting (EPHSR).
This patch implement it and one may call |do_set_link| to change the
link status.

Signed-off-by: You-Sheng Yang (楊有勝) <vicamo@gmail.com>
Bug 871475 - 5/6: link up/down in AT+CGACT handler.

Signed-off-by: You-Sheng Yang (楊有勝) <vicamo@gmail.com>
Bug 871475 - 6/6: implement AT+CGCONTRDP.

Signed-off-by: You-Sheng Yang (楊有勝) <vicamo@gmail.com>