aboutsummaryrefslogtreecommitdiff
path: root/package/network/utils/umbim/files/lib/netifd
Commit message (Collapse)AuthorAge
* mbim: add sourcefilter option supportChen Minqiang2024-04-17
| | | | | | This make source based IPv6 routing option available for mbim Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
* umbim: allow forcing DHCP/DHCPv6 configurationLech Perczak2023-05-07
| | | | | | | | | | | To support the widest variety of modems, allow restoring previous behaviour of configuring the link throug means of DHCP(v6) exclusively. Change the default value of "dhcp" and "dhcpv6" UCI options to "auto", while keeping the default behaviour of "prefer out-of-band configuration", intact. Setting "dhcp" or "dhcpv6" to boolean 1 will now force using DHCP and DHCPv6, respectively. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: include MBIM-provided DNS servers also with DHCP modeLech Perczak2023-04-29
| | | | | | | | In MBIM interfaces, DNS servers may be provided out-of-band regardless whether DHCP is used for configuration, or not. Move the DNS configuration outside "if" blocks to support that. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: extract common code from static and dhcp(v6) setup procedureLech Perczak2023-04-29
| | | | | | | Beginnings and endings of sub-interface creation procedure were literally duplicates - extract them outside if "if" blocks Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: handle MTU configurationLech Perczak2023-04-29
| | | | | | | | | Allow setting interface MTU through UCI. If this is not set, use MBIM-provided MTU, if provided through control channel. If separate MTUs are provided for IPv4 and IPv6, apply larger of them. This is very unlikely and possible only for IPv4v6 dual-stack configuration. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: delegate RFC7278 IPv6 prefixes from OOB configLech Perczak2023-04-29
| | | | | | | Delegate prefixes received through MBIM control channel the same way, as would be done through DHCP, according to RFC7278. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: drop IP configuration parsing using 'eval'Lech Perczak2023-04-29
| | | | | | Finally, when new helper is in use, drop old IP configuration parser. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: support multiple-valued configuration fieldsLech Perczak2023-04-29
| | | | | | | | | MBIM supports multiple values for IP address and DNS server, and such configuration is available through output of MBIM. Use new helper method to support adding multiple addresses and DNS servers to static interfaces for both IPv4 and IPv6. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: add "_proto_mbim_get_field" helperLech Perczak2023-04-29
| | | | | | | | | Add a new helper to extract IP configuration from umbim output. This is required to extract fields which can possibly have multiple values, namely IP addresses and DNS servers, and get rid of primitive parser using 'eval' builtin without support for this. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: log output of 'config' stepLech Perczak2023-04-29
| | | | | | | | Display full configuration obtained using MBIM control channel in the log, from umbim output verbatim, for easier troubleshooting, and in preparation for parser refactoring. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: pass ipXtable to child interfacesLech Perczak2023-04-29
| | | | | | | | Inspired by commti e51aa699f7ca, allow setting specific routing tables via ip4table and ip6table options, by passing them on child interfaces created by MBIM protocol handler. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: respect 'Enable IPv6 negotiation' optionLech Perczak2023-04-29
| | | | | | | Don't bring IPv6 part of interface up if it's disabled, or system does not support it. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: use static config by default, fallback to DHCPLech Perczak2023-04-29
| | | | | | | | | Finally, inspired by ModemManager's logic, make static configuration obtained through MBIM control channel, preferred. If IP configuration is not available this way, fallback to DHCP(v6) if enabled, else do not create a sub-interface for unavailable IP type. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: separate DHCPv6 configuration from DHCP(v4)Lech Perczak2023-04-29
| | | | | | | | | | Now, that sub-interface setup is split by IP type, and separate checks are performed for DHCP selection, it is possible to control DHCP on v4 an v6 sub-interfaces instantly. Add "dhcpv6" variable, akin to QMI option, to control behaviour of DHCPv6 separately from IPv4 option, which is required for some mobile operators. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: restructure IPv4/IPv6 handlingLech Perczak2023-04-29
| | | | | | | | Check whether interface is configured per IP type, not per DHCP. This is preparation to allow fallback to DHCP if static IP configuration is not available, which is the default option for MBIM modems Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: inherit firewall zone membership from parent interfaceLech Perczak2023-04-29
| | | | | | | | Fix an issue where subinterfaces were not added to the same firewall zone as their parent. Inspired by 64bb88841fb. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: inherit "peerdns" option from parent interfaceLech Perczak2023-04-29
| | | | | | | | MBIM protocol handler should intherit "peerdns" options from parent interface on sub-interfaces, otherwise upstream DNS servers are applied regardless of configuration. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: use IP configuration provided by MBIM by defaultLech Perczak2023-04-29
| | | | | | | | | | | | Previously, DHCP was used. According to MBIM Specification v1.0 errata 1 [1], section 10.5.20, MBIM_CID_IP_CONFIGURATION, if MBIM information element containing IP configuration is available, host shall use it, and fall back to in-band mechanisms to acquire it therwise - therefore make static configuration the default. [1] https://www.usb.org/document-library/mobile-broadband-interface-model-v10-errata-1-and-adopters-agreement Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: detect actual connection IP typeLech Perczak2023-04-29
| | | | | | | | | | | | Current implementation needlessly creates both IPv4 and IPv6 sub-interfaces for single-stack IP types. Limit this only to selected IP type. While at that, ensure that IP type is also passed to umbim during "connect" phase. In addition, detect the actual established connection type returned by umbim and set up subinterfaces according to that, not to requested configuration. While at that, allow empty IP type explicitly, interpreted as "any" according to MBIM specification. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: fail connect step immediatelyLech Perczak2023-04-29
| | | | | | | | | | | | | Subsequent calls to 'umbim connect' do not have any effect if a failure occured, and in such case an infinite loop without timeout is created, leading to possibility of interface stuck at connecting forever. Drop this loop, and issue MBIM disconnect properly, so netifd can restart from scratch. This issue can be observed with Sierra EM7455 at changing APN, which causes network re-registration by default, and a MBIM transaction timeout, which is resolved on next interface bringup by netifd. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: connect session for only the selected PDP typeLech Perczak2023-04-29
| | | | | | | | | Previous implementation automatically set up connections for both IPv4 and IPv6, even if one of them isn't supported. Respect the "pdptype" option in the same way, as it is done for QMI or NCM, and only start the respective PDN sessions, if set. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: add support for non-dhcp modeMartin Schiller2023-04-29
| | | | | | | | | | There are mbim compatible wwan modules available which do not support the dhcp autoconfiguration. (e.g. gemalto Cinterion ELS81) This adds the possibility to get the configuration parameters from mbim. Signed-off-by: Martin Schiller <ms@dev.tdt.de> Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: Allow roaming and partner connectionsJulio Gonzalez Gil2022-12-11
| | | | | | | | | | Allow registration if the SIM is roaming or partner mode, by adding two new options to the protocol. Until now, such registration failed because umbim returns exit codes 4 and 5 for such situations. Signed-off-by: Julio Gonzalez Gil <git@juliogonzalez.es>
* umbim: add missing json_close_object callMartin Schiller2021-12-27
| | | | | | | | Otherwise, connection setup may fail due to JSON parse error in netifd. Signed-off-by: Martin Schiller <ms@dev.tdt.de> [Updated commit description] Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: explicitly check for PIN1 stateMartin Schiller2021-12-27
| | | | | | | | | | | PIN2 is used only to restrict changing of fixed dialling feature, does not affect network registration. Therefore explicitly check for PIN1 state during connection setup, which is required for network registration. Signed-off-by: Martin Schiller <ms@dev.tdt.de> [Updated commit description] Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* umbim: call umbim disconnect in error caseMartin Schiller2021-12-27
| | | | | | | | This is needed to properly close the control channel. Otherwise, on the next try the caps call may fail. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
* umbim: fix return value of proto_mbim_setup()Adrian Schmutzler2021-06-05
| | | | | | | The variable name appears to be mistyped. Suggested-by: Howard Chu <hyc@symas.com> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* umbim: fix whitespace issuesAdrian Schmutzler2021-06-05
| | | | | | Make leading whitespaces consistent and remove trailing one. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* mbim: add metric, defaultroute and peerdns options for mbim protocolMarcin Jurkowski2016-10-26
| | | | | | | | | | Adds generic network options for mbim protocol dynamic interfaces as suggested by Felix in https://lists.openwrt.org/pipermail/openwrt-devel/2016-February/039794.html. This depends on netifd patch https://patchwork.ozlabs.org/patch/686820/. Signed-off-by: Marcin Jurkowski <marcin1j@gmail.com>
* comgt/umbim/uqmi: enable RFC 7278 for 3g/4g by defaultSteven Barth2015-09-03
| | | | | | Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46780
* umbim: auto retry when bringup failsJohn Crispin2015-04-21
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 45555
* network: also shorten virtual interface names of ppp and 3g/4g connectionsSteven Barth2015-04-17
| | | | | | Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 45479
* wwan: add a generic 3g/4g protoJohn Crispin2014-10-08
| | | | | | | | | this proto handler will detect which of 3g, qmi, mbim, ncm or directip you need for a stick and setup uci automagically Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42837
* umbim: dont use proto_block_restartJohn Crispin2014-10-08
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42833
* umbim: work out the ifname instead of relying on it being in uciJohn Crispin2014-10-08
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42832
* umbim: remove superflous jshn callJohn Crispin2014-09-11
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42467
* umbim: update to latest gitJohn Crispin2014-09-11
| | | | | | | | adds handling for username/password Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42466
* umbim: add netifd proto handler for mbim style lte modemsJohn Crispin2014-08-22
tested on vodafone k5105 Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42262