• Home
  • History
  • Annotate
  • only in /external/autotest/client/cros/netprotos/
History log of /external/autotest/client/cros/netprotos/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9de05fe5a962e79b06811bc5b44d8a7defe6af09 14-Oct-2014 Christopher Wiley <wiley@chromium.org> autotest: Add support for sending DNS responses to InterfaceHost

BUG=chromium:418738
TEST=A test using this is finally able to send responses back to Avahi.

Change-Id: Ib50a38fb039d20801cbe5b92b614c6d4e540f93f
Reviewed-on: https://chromium-review.googlesource.com/224260
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
nterface_host.py
074f65c0504cfba2062b934269b96e82e08f8cd9 13-Oct-2014 Christopher Wiley <wiley@chromium.org> autotest: Add register_service helper method to ZeroconfDaemon

This allows us to easily register all the records needed to expose a
'service' in the Avahi sense of the word.

BUG=chromium:418738
TEST=A pending test consumes this functionality without obvious issue.

Change-Id: I6cb6be8652d41076cf88b7ca73aa7e953bd40c5c
Reviewed-on: https://chromium-review.googlesource.com/223095
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
eroconf.py
eroconf_unittest.py
cb9864e93dd06fd51555f96cf95df4dbf0ce02c4 26-Sep-2014 Christopher Wiley <wiley@chromium.org> Add InterfaceHost for ZeroconfDaemon

Add a type of host that binds a UDP socket to a particular interface
rather than relying on TUN/TAP support via the simulator. While here,
change the tuples returned by cached_results to be namedtuples, and
add some simple utilities to avahi_utils.

BUG=chromium:412975
TEST=The test that depends on this passes. p2p_* still pass.

Change-Id: I9aa07e7f2e07cabe9b07ded345fc4f15ebe67c46
Reviewed-on: https://chromium-review.googlesource.com/220440
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
nterface_host.py
eroconf.py
90000536174d9c752a91e48a0514a8eb2dd64441 16-Jan-2014 Alex Deymo <deymo@chromium.org> netprotos: Process authoritative answers on mDNS queries

A mDNS query can contain a list of authoritative answers separated
from the list of known answers to the sent queries. This patch
makes the ZeroconfDaemon process those answers when they are
seen on a query packet and includes a unittest for that case.

BUG=chromium:328078
TEST=unittests and p2p_ServeFiles still passes.

Change-Id: I0609d35a2eaf08118d30f3ed68ed89754e803a42
Reviewed-on: https://chromium-review.googlesource.com/182731
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
eroconf.py
eroconf_unittest.py
dd874b90d66b46deb889ee21438f5c27a9ca7647 15-Jan-2014 Alex Deymo <deymo@chromium.org> netprotos: Add initial unittests for Zeroconf module.

The ZeroconfDaemon class provides a partial python implementation of
the Zeroconf protocol used for integration testing of P2P features.
The implementation is based on the lansim simulator but it can be run
independently with a different underlying Host class with the same
interface.

This patch adds a new FakeHost and basic unit tests for the
ZeroconfDaemon class.

BUG=chromium:328078
TEST=./utils/unittest_suite.py --debug client.cros.netprotos.zeroconf_unittest

Change-Id: Ie081f8ba9a78bc42603d7397c4e9be5ebe439a2e
Reviewed-on: https://chromium-review.googlesource.com/182730
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
ake_host.py
eroconf.py
eroconf_unittest.py
2c5c348c740930e6effa3e25441e6ba0080b3221 31-Oct-2013 Alex Deymo <deymo@chromium.org> p2p_ConsumeFiles: Raise error excetions and fix test.

The test p2p_ConsumeFiles checks, among other things, that the
p2p-client client hangs when there are too many connections on the
network. This check was wrong and wasn't making the test fail because
the error.TestFail exception was being created but not raised.

This patch solves that problem and also fixes the test in a more
robust way. The fake p2p server running on the simulator can now
optionally update the network with the new shared file or number of
connections, as the real p2p-server does. This notifies p2p-clients
with a cached value of num_connections that a new value of
num_connections is available.

To achieve this, some locking between the test thread and the
simulator thread is added to allow the test thread call functions
that send packets but from the simulator thread.

BUG=None
TEST=lansim unittests, test_that p2p_ConsumeFiles and p2p_ShareFiles pass.

Change-Id: I89ebf5a33d55cb3ab0f06283f79c6c335d162368
Reviewed-on: https://chromium-review.googlesource.com/175169
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
ros_p2p.py
eroconf.py
c39594fae840955bf530305e9349694be5953c8f 11-Oct-2013 Alex Deymo <deymo@chromium.org> p2p: p2p_ShareFiles tests mDNS requests.

This patch adds a few more steps to the recent p2p_ShareFiles test
to verify that new shared .p2p file is announced by the p2p-server
running on the DUT and a peer can actively discover it.

BUG=chromium:271847
TEST=test_that p2p_ShareFiles

Change-Id: I8bdba85034eb78975d1731ec6b64c96c61ede122
Reviewed-on: https://chromium-review.googlesource.com/174398
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
ros_p2p.py
eroconf.py
e24633e8df180e0479e78d641a6643e3ec36845d 10-Oct-2013 Alex Deymo <deymo@chromium.org> p2p: New p2p_ShareFiles test.

This test passively checks that the DUT exposes the right information
over mDNS when the service p2p is running. To achieve this a new
CrosP2PClient class implements the client part of the P2P protocol,
but only in a passive way. This means that this fake client doesn't
send any request to the DUT. Nevertheless, the mDNS/DNS-SD protocol
states that the DUT should annouce the records to the multicast
address. This can be extended later to actively request the same
information.

BUG=chromium:271847
TEST=test_that --fast -b link <dut_ip> p2p_ShareFiles

Change-Id: I9f4e61e3094dd876dfaf749df051d42ebf8f59a8
Reviewed-on: https://chromium-review.googlesource.com/172894
Reviewed-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
ros_p2p.py
eroconf.py
8cbb993ebc2483d0576ecefbd05d425abd91b5d9 11-Oct-2013 Alex Deymo <deymo@chromium.org> netprotos: ZeroconfDaemon don't flush PTR records.

mDNS/DNS-SD PTR records are used to discover hosts on the network
using a generic protocol name. A host will reply to such request with
a PTR (domain pointer) from this generic protocol name to its
specific service name. For example, a PTR request for
"_cros_p2p._tcp.local" will be replied by several hosts on the
network implementing the cros_p2p protocol with responses like
"my-hostname._cros_p2p._tcp.local". A host seeing these responses
will simply accumulate all the pointer (PTR) responses as they are
all valid and will consider them all. In the example before, this
means that there are multiple hosts providing the
_cros_p2p._tcp.local service, which is normally the case. Setting the
DNS_CACHE_FLUSH for one these replies will force a host receiving
that response to wipe all the other responses for
"_cros_p2p._tcp.local" and keep only that one, which isn't the
intended message since several hosts are providing responses to the
same generic domain.

This patch removes the DNS_CACHE_FLUSH bit from those responses.

BUG=chromium:271847
TEST="test_that p2p_ConsumeFiles" still works.

Change-Id: Icfaefafd028ec3f1736e71187694454dfe73ecd3
Reviewed-on: https://chromium-review.googlesource.com/172726
Reviewed-by: David Zeuthen <zeuthen@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
eroconf.py
732dfe9c1124b51b906cb6510f219ad84be58836 03-Oct-2013 Alex Deymo <deymo@chromium.org> netprotos: New Zeroconf and P2P server support based on lansim.

This patch adds two new classes based on the lansim asynchronous
socket interface allowing a user to simulate a host running a
Zeroconf/avahi daemon and a P2P server daemon. The examples on the
netprotos/__init__.py documentation file show the usage of these
two new classes.

BUG=chromium:288385
TEST=Manual test:

Ran the simulator following the examples on the documentation and
use p2p-client to discover the files shared by the simulated P2P
server.
"p2p-client --list-all" lists all the files shared on the fake
interface and "p2p-client --get-url=some_payload" returns the
URL for the provided fake host.

Change-Id: Ic4f0393768e29fcb3d13e450ad0e8dd2fe1efec3
Reviewed-on: https://chromium-review.googlesource.com/170527
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
_init__.py
ros_p2p.py
eroconf.py