gtknw

@gtknw

Gemtek Neworking Team

Public team

Joined on Feb 26, 2021

  • Problem When testing the downlink throughput using iperf, we found that traffic can not go through the IPA. After checking the ip4_rt and hdr in the kernel debugfs, there is no client information inside them. Debug Messages Analysis In order to find out the reason, we enable the log message of ipacm. From the log we can observe that some errors occurred when calling the IOCTL(IPA_IOC_QUERY_INTF). In the IOCTL handler of IPA driver, it will return the error -1 if it can not find the registered interface. :::spoiler ipacm log
     Like  Bookmark
  • Patch on OpenWrt The patch to implements the VLAN mapping is located at the ~/AIROHA_CPE/airoha_feeds/target/linux/airoha/patches/900-airoha_allinone_patch.patch In this patch, it adds hook points at the receiving function and sending function of the Linux kernel networking stack. Code Tracing __netif_receive_skb_core The packet receving entry of the Linux kernel is __netif_receive_skb_core. We can find that it adds a inline hook (ecnt_netif_recv_inline_hook) to this function for handling the mapping rules on receiving side.
     Like  Bookmark
  • Problem In the customer environment, the downlink throughput will drop to 30% after 8-12 hours. image The workaround to resolve this issue is to reboot or rescan. Preliminary Observation When the traffic is sent by TCP, IPA will learn the rule and send the traffic by this rule. (The maximum rule number for IPA is 500) Ideally, this rule should be deleted shortly after the traffic is finished.
     Like  Bookmark
  • Structure Diagram IPA_Structure.drawio The ipacm is a user space daemon that controls the IPA HW. It will monitors the kernel network event through netlink and sets corresponding rules to the IPA driver through ioctl. The ipacm has a configuration file which is located in the /etc/data/ipa/IPACM_cfg.xml. The detailed instructions can be found in Modem_IPA_Configuration_Manager.pdf . We have implemeted a script ipacm_cfg_QCM.sh used for modifying the config. This script will be called when the network settings has changed.
     Like  Bookmark
  • Problem The WAN interface on the SDX platform is pure layer 3 interface without the MAC layer, so it can not use the brctl to enslave them to bridge interface. In the bridge mode, the CPE should assigns the WAN IP to the LAN side devices, then it will forwards the traffic from the ethernet to the modem. The IPPT (IP passthrough) approach which is supported by the IPA, and we could use it to implement the bridge mode. Patch for ipacm Learn the rule from the conntrack The ipacm will monitor the connection from the Linux kernel, we can view relevant code in the IPACM_ConntrackListener.cpp. The patch 0003-support-ippt-with-muliple-pdns.patch is used for learning the rules that the source or the desination IP match the WAN IP of the CPE. When the CPE is working in the bridge mode, the source IP of the LAN traffic will be the same as the CPE WAN IP, so we need to let ipacm to learn about these traffic.
     Like  Bookmark
  • Protocol Script The protocol script is a communication mechanism implemented by the netifd. It is used to notify the IP address, network mask and DNS server to netifd. cm_mgr.sh We implement the cm_mgr.sh to convert the data from the CM to the netifd. In the cm_mgr.sh, it will use the proto_ prefix function to encapsulate the data into JSON format, and send it to netifd. cm_mgrv6.script The v6_addr in the cm_mgr.sh is a link-local address, and it should be binded on the WAN interface (ccmni).
     Like  Bookmark
  • REFs VLANControlUtility-vlanctl_VLAN-AN100-RDS.pdf Structure Diagram flowchart LR classDef user stroke-width:0,fill:gold classDef kernel stroke-width:0,fill:silver A1(vlanctl):::user A2(omcid):::user
     Like  Bookmark
  • REFs https://wiki.rdkcentral.com/display/CMF/RDKB_2023q2_dunfell https://wiki.rdkcentral.com/display/RDK/RDK-B+%28Raspberry+Pi%29+Build+and+Setup+Manual https://wiki.rdkcentral.com/display/ASP/Cellular+Manager SDK Source Code Download with an authenticated user of RDK Central repo init -u https://code.rdkcentral.com/r/manifests -m rdkb-extsrc.xml -b rdkb-2023q2-dunfell repo sync -j `nproc` --no-clone-bundle --no-tags
     Like  Bookmark
  • VPN Passthrough L2TP / IPSEC In modern computers, the L2TP tunnel usually works with IPSEC to establish a secure tunnel. And if the computer is behind a NAT, the IPSEC will use UDP port 500 and 4500 to traverse the firewall. So the IPA can accelerate these packets as normal UDP packets. # cat /tmp/test | grep 219.100.37.201 udp 17 26 src=10.122.43.223 dst=219.100.37.201 sport=4500 dport=4500 [UNREPLIED] src=219.100.37.201 dst=10.122.43.223 sport=4500 dport=4500 mark=0 secctx=system_u:object_r:unlabeled_t:s15:c0.c1023 use=1 udp 17 25 src=10.122.43.223 dst=219.100.37.201 sport=500 dport=500 [UNREPLIED] src=219.100.37.201 dst=10.122.43.223 sport=500 dport=500 mark=0 secctx=system_u:object_r:unlabeled_t:s15:c0.c1023 use=1 GRE L2/L3 There is an option in IPACM_cfg.xml to configure the GRE setting.
     Like  Bookmark
  • Description In the actual case, ODU usually comes with an AP. The ODU is reponsible for connecting to the base station through LTE/NR wireless technology. The AP is reponsible for providing WiFi and ethernet communication, and its WAN port is connected to the LAN port of the ODU. Standalone FW The ODU operates on the bridge mode by default, and it will share the PDNs except MGMT with AP connected with it. The AP will obtain the public IP from the ODU using DHCP protocol, and it typically perform the NAT to translate the LAN traffic from the PC . Combined FW
     Like  Bookmark
  • Ploblem By default, the ipacm can only monitor the main routing table using netlink API. Therefore the packets can only be accelerated throught the WAN interface used as default gateway in main routing table. The mutiple PDNs for the IPA could only be used with the VLAN, and this feature is provided with the original QCMAP developed by Qualcomm. Patches for ipacm Monitor other routing tables This modification is located at the 0001-monitor-other-routing-tables.patch, we can find it on the mojito project, and it is under the following path ~/mojito-sdk/trunk/buildroot/external/package/SdxPkgs/meta-qti-data/data-ipa-cfg-mgr/LE.UM.4.4.2.r1-02200-SDX55. This patch mainly removes the restriction that the ipacm only monitors the main routing table.
     Like  Bookmark
  • Problem When testing the downlink throughput between the server and the CPE, it could only reach 200Mbps on SDX55 series platform. It can be observed that the CPU idle is 0% from the top, and the sys and sirq occupy most of the CPU resource. Trace rmnet_data Driver REFs qcom ipa qcom gsi GSI
     Like  Bookmark
  • Reference git commit about VLAN rule commit 153ef26daf0526e507ac0cd790ab9f024528ad79 Author: ocean_liu <ocean_liu@gemteks.com> Date: Fri Jul 7 19:25:43 2023 +0800 [Radisys][General] Add vlan rule to access ONU after PON provision [Description] 1. Avoid removing eth0.0 in OMCI stack.
     Like  Bookmark
  • Problem The servers in the .6 subnet can not directly access the gerrit.gemteks.com, except the HANA server. We can clone the git repository from the gerrit into the HANA server, but there is not enough space on that server. The new server CYBERTRUNK has a lot of space and we plan to use it to store the git repository. CYBERTRUNK --> GERRIT: SSH Request GERRIT --> CYBERTRUNK: No Response HANA->GERRIT: SSH Request
     Like  Bookmark
  • WAN Interface When CM manager connect to the base station, it will obtain information from MIPC API, and the ifid in the TLV data is used to indicate the interface number. The packets sent fromt the modem will pass through the corresponding channels which has same number as ifid. Problem Every time when the APN is established, the rule for bringing up the WAN interface is random, so we could not know the exact interface name. Solution Diagram MTK_interface_remapping.drawio
     Like  Bookmark
  • Reference Document Path: ~/BCRM_CPE/docs/data_customer_docs/CMS_Developers_Guide-CPE-SWUM102-SWRDS.pdf Section 4: The Data Model cms-dm-gpon.xml: This file contains the GPON data model (also known as a MIB) from the ITU for controlling GPON ONU. Section 6: Automatic Generation of Source and Header Files from the Data Model If you do not want to do a complete make from the top, you can also chagne directory into the data-model directory and type make. $ cd ~/BCRM_CPE/userspace/private/libs/omcisdk/core/data-model
     Like  Bookmark
  • REFs https://stackoverflow.com/questions/70741364/why-does-an-invalid-use-of-c-function-compile-fine-without-any-warnings https://www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf ISO C Definition 6.7.5.3 Function declaratators An identifier list declares only the identifiers of the parameters of the function. An empty list in a function declarator that is part of a definition of that function specifies that the function has no parameters. The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of the parameters is supplied.
     Like  Bookmark
  • Version: rdkb-2022q3-dunfell Mxl Version EthAgent Start up Entry Point: plugin_main.c: CosaEthernetCreate() CosaEthernetInitialize Assign callback function for lowlayer link event(Link Up/Down). 379 obj.pGWP_act_EthWanLinkDown = EthWanLinkDown_callback;
     Like  Bookmark
  • Version: rdkb-2022q3-dunfell Mxl Version
     Like  Bookmark
  • # R-Bus
     Like  Bookmark