<commit_before>This file summarizes information on basic testing of USB functions
provided by gadgets.

1. ACM function


1. ACM function
===============

The function is provided by usb_f_acm.ko module.

Function-specific configfs interface
------------------------------------

The function name to use when creating the function directory is "acm".
The ACM function provides just one attribute in its function directory:

	port_num

The attribute is read-only.

There can be at most 4 ACM/generic serial/OBEX ports in the system.


Testing the ACM function
------------------------

On the host: cat > /dev/ttyACM<X>
On the device : cat /dev/ttyGS<Y>

then the other way round

On the device: cat > /dev/ttyGS<Y>
On the host: cat /dev/ttyACM<X><commit_msg>Documentation: usb: ECM function testing<commit_after>This file summarizes information on basic testing of USB functions
provided by gadgets.

1. ACM function
2. ECM function


1. ACM function
===============

The function is provided by usb_f_acm.ko module.

Function-specific configfs interface
------------------------------------

The function name to use when creating the function directory is "acm".
The ACM function provides just one attribute in its function directory:

	port_num

The attribute is read-only.

There can be at most 4 ACM/generic serial/OBEX ports in the system.


Testing the ACM function
------------------------

On the host: cat > /dev/ttyACM<X>
On the device : cat /dev/ttyGS<Y>

then the other way round

On the device: cat > /dev/ttyGS<Y>
On the host: cat /dev/ttyACM<X>

2. ECM function
===============

The function is provided by usb_f_ecm.ko module.

Function-specific configfs interface
------------------------------------

The function name to use when creating the function directory is "ecm".
The ECM function provides these attributes in its function directory:

	ifname		- network device interface name associated with this
			function instance
	qmult		- queue length multiplier for high and super speed
	host_addr	- MAC address of host's end of this
			Ethernet over USB link
	dev_addr	- MAC address of device's end of this
			Ethernet over USB link

and after creating the functions/ecm.<instance name> they contain default
values: qmult is 5, dev_addr and host_addr are randomly selected.
Except for ifname they can be written to until the function is linked to a
configuration. The ifname is read-only and contains the name of the interface
which was assigned by the net core, e. g. usb0.

Testing the ECM function
------------------------

Configure IP addresses of the device and the host. Then:

On the device: ping <host's IP>
On the host: ping <device's IP>
{'fraction_non_alphanumeric': 0.12931034482758622, 'fraction_numerical': 0.0037481259370314842, 'mean_word_length': 2.959940652818991, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 18, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5198906', 'n_tokens_mistral': 747, 'n_tokens_neox': 704, 'n_words': 362}