The closest I could find to this:
https://lore.kernel.org/all/1401383543-10181-2-git-send-email-jim_baxter@mentor.com/
For reference, a host USB port is where you would plug in a mouse or other device; the device itself, if it has a port, is a device port. Type-A ports always accept devices (because they are hosts) and type-B ports also accept a host (because they are devices). There is no exception to this, although a type-C has both wiring available and can automatically switch to the needed type. On the TX2 there is a micro-OTG port (“On The Go”), and this will accept either a type-B cable (for attaching a device such as a mouse) or a type-A cable (which causes the port to become a device, although the type of device requires customizing). The OTG only works like this because there is an ID pin to tell the Jetson if there is a type-A or type-B plug. Gadget works when the ID says the other end is another host (e.g., Windows 11) and not a device. This, in turn, requires other setup on the Jetson which works fairly well to emulate various USB devices.
FYI, the “gadget” API of the Linux kernel is used in this case to emulate a Communication Class Device (CDC), sub-device type Network Control Model (NCM). A router capable of providing a DHCP setup to the non-Jetson device and to pretend it is Ethernet instead of USB. See:
https://www.keil.com/pack/doc/mw/usb/html/group__usbd__cdc_functions__ncm.html
There is apparently a patch created regarding this in the Linux kernel (it isn’t an “NVIDIA thing”):
https://lore.kernel.org/all/1401383543-10181-2-git-send-email-jim_baxter@mentor.com/
However, I don’t know if that patch is already applied or not, and if the patch is applied, then perhaps this isn’t sufficient. You could update to L4T R32.7.6, and maybe it is there already. The list of compatible L4T releases is found here:
https://developer.nvidia.com/embedded/jetson-linux-archive
If you are feeling adventurous, then you could download the kernel for L4T R32.6.1 and go to the specific file listed in the patch URL I gave and see if the patch is there or not (and you could verify if L4T R32.7.6 has this patch also in case R32.6.1 does not and you want to see if the upgrade would help). It is also possible that even with this patch there might be some other issue and the patch might not help.
I think right now the TX2 is in maintenance only, which would include security releases, so either fixing via upgrade to R32.7.6 or manually applying that patch is the only chance of fixing this. If you do look at the kernel source and see if the patch needs to be applied, then you could ask about how to apply the patch. Be sure to use only the kernel source from the L4T release you are actually working with.