# net_upstream [TOC] The net_upstream kernel module provides character devices that, when opened, automatically create proxy network interfaces. Originally the network interface designed to add a customizable proxy before physical, internet-facing interfaces such as VDSL interfaces. Being a proxy, each net_upstream interface must be configured with a master interface in order to be useful. - In the transmit data path, packets will be forwarded to the master interface (or dropped if no master is configured). - In the receive data path, every packet received on the master is passed to to the net_upstream interface through the `rx_handler` mechansim. Before transmitting packets to the master there is the ability to apply *tx actions*. These actions can modify the `struct sk_buff` or the packet data. The action could also drop the packet. @note Currently there is only one *tx action* implemented (mapping `skb->priority` to PCP bits in the vlan header). Configuration of net_upstream is usually done through IOCTLs on the character device, however generic network interface configuration is done on associated the net_upstream interface. Access to the character device should not be done directly. Instead, an access library is provided that wraps `open()`, `close()` and `ioctl()`. net_upstream_api.h has all the details. To see how net_upstream is used within FRITZ!OS for Internet access, see https://wiki.avm.de/display/NW/Konzept+Datenpfad+mit+net_upstream ## GU-Autodox [GU-Autodox](https://code.avm.de/gu-autodox/)