If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.

0
U

Property:libnet upstream.so

From BoxMatrix
(Redirected from libnet upstream.so)


BoxMatrix >> Shell-Commands >> libnet_upstream.so @ BoxMatrix   -   IRC-Chat   -   Translate: de es fr it nl pl
News Selectors Models Accessories Components Environment Config Commands System Webif Software Develop Lexicon Community Project Media

Startup-Scr Hotplug-Scr BusyBox-Cmds Bash-Cmds AVM-Cmds Chipset-Cmds Linux-Cmds Shared-Libs Kernel-Mods Research

Shared-Library

Goto:   Dependencies   -   Model-Matrix   -   Symbols   -   SMW-Browser

Details

libnet_upstream.so is the AVM net_upstream proxy network interface API. It is only used by dsld.
AVM also calls it the Layer 2 network upstream uapi access library.

It uses the net_us device to ioctl control the net_upstream_drv.ko driver. Read its explanation.

Excerpt from net_upstream_api.h on the GPL-Browser below:

/** Open a net_us device
 *
 * The first available device is picked and opened. A file descriptor is returned
 * that's suitable for the other net_us_* APIs.
 *
 * Additionally, a net_upstream%%d proxy network interface is created automatically
 * where  %%d corresponds to the minor number of the open device. The network
 * interface  may be configured and used like a normal interface but it's rather
 * useless  before a master device is linked net_us_set_master(), as all packets
 * are being dropped.
 *
 * @see net_us_close()
 *
 * @return file descriptor to the device
 */
int net_us_open(void);

/** Close an open net_us device
 *
 * The network interface associated with the device is torn down as well.
 *
 * @param fd The open net_us device
 */
void net_us_close(int fd);

/** Get the interface index of the net_upstream interface
 *
 * Because you cannot reliably predict the name of the net_upstream interface
 * that is created along with this net_us device you can retrieve its interface
 * index with this function.
 *
 * You can pass it then to @a if_indextoname() to access the name.
 *
 * @param fd The open net_us device
 *
 * @return The interface index (> 0) or -1 on error.
 */
int net_us_get_ifindex(int fd);

/** Link a master interface
 *
 * The master interface is central to net_upstream operation
 * - Packets sent through an net_upstream interface are forwarded to the master
 * - Packets received on the master interface are forwarded to the net_upstream interface
 *
 * So, unless tx actions are configured, a net_upstream interface is a simple proxy
 * interfface. However, it can be created and configured independently, e.g. before
 * the master interface even exists.
 *
 * Only one master can be linked. The function returns and sets errno if
 * there is already one master linked.
 *
 * @see net_us_clear_master()
 *
 * @param fd The open net_us device
 * @param ifindex The interface index of the master
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_set_master(int fd, int ifindex);

/** Unlink a master interface
 *
 * Break the connection to a master interface that was previously linked with
 * net_us_set_master(). Afterwards the net_upstream interface will drop transmitted
 * packets and will not receive any packets.
 *
 * It is an error if the function is called on a unlinked net_us device.
 *
 * @param fd The open net_us device
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_clear_master(int fd);

/** Add a vlanprio map tx action.
 *
 * The vlanprio map tx action sets the vlanprio bits in the VLAN header of
 * transmitted packets, before the packets are forwaded to the linked master
 * interface.
 *
 * The vlanprio bits are set according to the map that's configured here.
 * The map maps skb->priority to the corresponding PCP value..
 *
 * You can add different maps for different vlan ranges. E.g. vlan 7 can use
 * a different map that vlans 8-10.
 *
 * Keep in mind that in the VLAN context, 0 and 1 are swapped. 0/Best Effort has
 * a higher priority than 1/Background. Otherwise a higher PCP value indicates
 * higher priority.
 *
 * @see net_us_tx_clear_all()
 *
 * @param fd The open net_us device
 * @param vlan_start Start of the vlan range
 * @param vlan_end End (inclusive) of the vlan range
 * @param map An array of PCP values
 * @param map_len The length of the PCP value arraz.
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_tx_add_vlanprio_map(int fd, int vlan_start, int vlan_end, uint8_t *map, int map_len);

/** Clear all tx actions
 *
 * This clears every tx action that was previously configured with net_us_tx_add_*.
 * Afterwards, every packet is directly forwarded to the master interface without
 * any tx action applied. Consider seting the net_upstream interface down before
 * if that's a problem.
 *
 * @param fd The open net_us device
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_tx_clear_all(int fd);


/** Add mac pass-through rx action (source)
 *
 * Install a source-based mac address filter. Packets matching the mac address
 * in their source address will pass through the IP stack, i.e. will not
 * be received on the net_upstream interface.
 *
 * @see net_us_rx_add_mac_passthrough_dest() for a destination-based filter.
 * @see net_us_tx_clear_all() for clearing rx actions.
 *
 * @param fd The open net_us device
 * @param mac The Ethernet address to match
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_rx_add_mac_passthrough_src(int fd, uint8_t mac[ETH_ALEN]);


/** Add mac pass-through rx action (source)
 *
 * Install a source-based mac address filter. Packets matching the mac address
 * in their source address will pass through the IP stack, i.e. will not
 * be received on the net_upstream interface.
 *
 * @see net_us_rx_add_mac_passthrough_src() for a source-based filter.
 * @see net_us_tx_clear_all() for clearing rx actions.
 *
 * @param fd The open net_us device
 * @param mac The Ethernet address to match
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_rx_add_mac_passthrough_dest(int fd, uint8_t mac[ETH_ALEN]);

/** Clear all rx actions
 *
 * This clears every tx action that was previously configured with net_us_rx_add_*.
 * Afterwards, every packet is directly forwarded to the master interface without
 * any rx action applied. Consider seting the net_upstream interface down before
 * if that's a problem.
 *
 * @param fd The open net_us device
 *
 * @return 0 on success, -1 otherwise
 */
int net_us_rx_clear_all(int fd);

GPL-Browser

Daily updated index of all libnet_upstream.so code findings on the GPL-Browser. Last update: 2024-05-20 04:03 GMT.
The Browse column points to the Path containing the respective source code on the gpl.boxmatrix.info service.
The SoC column lists the Chip-Codenames, the Model column lists the nicks of the Box-Models.
The Diff column links the comparison of the AVM Kernel to the pristine original from Kernel.org.
The Download column links the full tarball the respective directory content is extracted from.
The presence of the source does not mean it fits the respective model and architecture. See the Model-Matrix where it's used.

Dependencies

Daily updated index of all dependencies of this library. Last update: 2024-05-20 07:16 GMT.
A * in the Mod column marks info from Supportdata-Probes, which will always stay incomplete.

Relation Typ Object Mod Firmware Info Origin
Depends on lib ld.so 6 7.90 Dynamic linker / loader Linux
Depends on lib libc.so 18 7.39 - 7.90 Standard C library Linux
Required by cmd dsld (avmcmd) 16 7.39 - 7.90 Internet routing daemon. AVM
3 dependencies for this library

Model-Matrix

Daily updated index of the presence, path and size of this library for each model. Last update: 2024-05-20 05:00 GMT.
Showing all models using this library. Click any column header (click-wait-click) to sort the list by the respective data.
The (main/scrpn/boot/arm/prx/atom) label in the Model column shows which CPU is meant for models with multiple Linux instances.
Note that this list is merged from Firmware-Probes of all known AVM firmware for a model, including Recovery.exe and Labor-Files.

Model Firmware Path Size
FRITZ!Box 4060 7.39 - 7.57 /usr/lib 5.3k
FRITZ!Box 5530 Fiber (main) 7.39 - 7.80 /usr/lib 5.8k
FRITZ!Box 5590 Fiber (arm) 7.39 - 7.90 /usr/lib 5.2k - 9.8k
FRITZ!Box 5590 Fiber (prx) 7.39 - 7.90 /usr/lib 5.8k - 9.8k
FRITZ!Box 5690 Pro (arm) 7.59 - 7.60 /usr/lib 5.2k
FRITZ!Box 6591 Cable (arm) 7.90 /usr/lib 5.3k - 13.3k
FRITZ!Box 6591 Cable (atom) 7.90 /usr/lib 13.3k
FRITZ!Box 6660 Cable (arm) 7.90 /usr/lib 5.3k - 13.3k
FRITZ!Box 6660 Cable (atom) 7.90 /usr/lib 13.3k
FRITZ!Box 6690 Cable (arm) 7.90 /usr/lib 5.3k - 13.3k
FRITZ!Box 6690 Cable (atom) 7.90 /usr/lib 13.3k
FRITZ!Box 6850 LTE 7.90 /usr/lib 5.3k
FRITZ!Box 6850 5G 7.90 /usr/lib 5.3k
FRITZ!Box 7530 AX 7.90 /usr/lib 5.3k
FRITZ!Box 7590 7.90 /usr/lib 9.8k
FRITZ!Box 7590 AX 7.90 /usr/lib 9.8k
FRITZ!Box 7690 7.59 - 7.60 /usr/lib 5.2k
FRITZ!Repeater 6000 7.39 - 7.58 /usr/lib 5.3k
18 models use this library

Symbols

Daily updated index of all symbols of this library. Last update: 2024-05-20 07:16 GMT.

Firmware Symbol
7.39 - 7.90 net_us_clear_master
7.39 - 7.90 net_us_close
7.39 - 7.90 net_us_get_ifindex
7.39 - 7.90 net_us_open
7.39 - 7.90 net_us_rx_add_mac_passthrough_dest
7.39 - 7.90 net_us_rx_add_mac_passthrough_src
7.90 net_us_rx_add_proto_passthrough
7.39 - 7.90 net_us_rx_clear_all
7.39 - 7.90 net_us_set_master
7.90 net_us_tx_add_skbprio_act
7.39 - 7.90 net_us_tx_add_vlanprio_map
7.39 - 7.90 net_us_tx_clear_all
12 symbols for this library

SMW-Browser

Information is currently being retrieved from the backend.
 

Synonyms

Showing 1 related property.

l