Просмотр исходного кода

Split networking action into networking-config, bbrv3, and cifs sub-actions

TheWildJames 1 месяц назад
Родитель
Сommit
5442bb7178

+ 64 - 0
.github/actions/bbrv3/action.yml

@@ -0,0 +1,64 @@
+name: 'Apply BBRv3 Patches'
+description: 'Apply BBRv3 TCP congestion control patches with version-specific logic'
+inputs:
+  version:
+    description: 'Kernel config version (e.g., android15-6.6)'
+    required: true
+  kernel_version:
+    description: 'Kernel version (e.g., 6.1)'
+    required: true
+  sublevel:
+    description: 'Kernel sublevel'
+    required: true
+
+runs:
+  using: "composite"
+  steps:
+    - name: Apply Kernel Config for 5.10
+      shell: bash
+      working-directory: ${{ github.workspace }}/kernel/common
+      if: inputs.kernel_version == '5.10'
+      run: |
+        sed -i 's/CONFIG_IP_SET_MAX/65534/g' net/netfilter/ipset/ip_set_core.c
+
+    - name: Apply BBRv3 Patch
+      shell: bash
+      working-directory: ${{ github.workspace }}/kernel/common
+      run: |
+        set -euo pipefail
+        if [[ ${{ inputs.version }} == "android16-6.12" ]]; then
+          #patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android15-6.6.patch"
+          #patch -p1 < ${{ github.action_path }}/patches/0001-net-tcp-backport-BBRv3-to-android16-6.12.patch
+          echo "skipped"
+        elif [[ ${{ inputs.version }} == "android15-6.6" ]]; then
+          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android15-6.6.patch"
+        elif [[ ${{ inputs.version }} == "android14-6.1" ]]; then
+          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android14-6.1.patch"
+        elif [[ ${{ inputs.version }} == "android14-5.15" ]]; then
+          #patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android13-5.15.patch"
+          patch -p1 < ${{ github.action_path }}/patches/0001-net-tcp-backport-BBRv3-to-android14-5.15.patch
+        elif [[ ${{ inputs.version }} == "android13-5.15" ]]; then
+          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android13-5.15.patch"
+          if [[ ${{ inputs.sublevel }} -le "43" ]]; then
+            patch -p1 < ${{ github.action_path }}/patches/0002-net-tcp-add-tcp_snd_cwnd-and-tcp_snd_cwnd_set-helper-functions.patch
+          fi
+        elif [[ ${{ inputs.version }} == "android13-5.10" ]]; then
+          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android12-5.10.patch"
+        elif [[ ${{ inputs.version }} == "android12-5.10" ]]; then
+          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android12-5.10.patch"
+        fi
+
+        if [[ ${{ inputs.version }} == "android12-5.10" || ${{ inputs.version }} == "android13-5.10" ]]; then
+          if ! grep -qF 'int proc_dou8vec_minmax(' ./include/linux/sysctl.h; then
+            patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/sysctl_add_proc_dou8vec_minmax.patch"
+            patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/sysctl_fix_data-races_in_proc_dou8vec_minmax.patch"
+          fi
+        fi
+
+        echo "✅ BBRv3 patches applied"
+
+    - name: Enable BBRv3 Kernel Config
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_TCP_CONG_BBR3=y

+ 27 - 0
.github/actions/cifs/action.yml

@@ -0,0 +1,27 @@
+name: 'Setup CIFS Configs'
+description: 'Enable CIFS/network filesystem kernel configs and apply version-specific fixes'
+inputs:
+  version:
+    description: 'Kernel config version (e.g., android16-6.12)'
+    required: true
+
+runs:
+  using: "composite"
+  steps:
+    - name: Enable CIFS Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_CIFS=y
+          CONFIG_NETWORK_FILESYSTEMS=y
+          CONFIG_NETFS_SUPPORT=y
+          CONFIG_KEYS=y
+          CONFIG_CIFS_XATTR=ys
+          CONFIG_CIFS_POSIX=y
+
+    - name: Fix CIFS on android16-6.12
+      shell: bash
+      working-directory: ${{ github.workspace }}/kernel/common
+      if: inputs.version == 'android16-6.12'
+      run: |
+        sed -i '/"fs\/netfs\/netfs\.ko",/d' modules.bzl

+ 75 - 0
.github/actions/networking-config/action.yml

@@ -0,0 +1,75 @@
+name: 'Setup Networking Configs'
+description: 'Enable networking-related kernel configuration options'
+
+runs:
+  using: "composite"
+  steps:
+    - name: Enable IP Set & Firewall Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_IP_SET=y
+          CONFIG_IP_SET_MAX=65534
+          CONFIG_IP_SET_BITMAP_IP=y
+          CONFIG_IP_SET_BITMAP_IPMAC=y
+          CONFIG_IP_SET_BITMAP_PORT=y
+          CONFIG_IP_SET_HASH_IP=y
+          CONFIG_IP_SET_HASH_IPMARK=y
+          CONFIG_IP_SET_HASH_IPPORT=y
+          CONFIG_IP_SET_HASH_IPPORTIP=y
+          CONFIG_IP_SET_HASH_IPPORTNET=y
+          CONFIG_IP_SET_HASH_IPMAC=y
+          CONFIG_IP_SET_HASH_MAC=y
+          CONFIG_IP_SET_HASH_NETPORTNET=y
+          CONFIG_IP_SET_HASH_NET=y
+          CONFIG_IP_SET_HASH_NETNET=y
+          CONFIG_IP_SET_HASH_NETPORT=y
+          CONFIG_IP_SET_HASH_NETIFACE=y
+          CONFIG_IP_SET_LIST_SET=y
+          CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
+          CONFIG_NETFILTER_XT_SET=y
+          CONFIG_NETFILTER_XT_TARGET_LOG=y
+          CONFIG_NETFILTER_XT_MATCH_RECENT=y
+          CONFIG_IP6_NF_NAT=y
+          CONFIG_IP6_NF_TARGET_MASQUERADE=y
+
+    - name: Enable TCP Congestion Control Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_TCP_CONG_ADVANCED=y
+          CONFIG_TCP_CONG_BBR=y
+          CONFIG_TCP_CONG_CUBIC=y
+          CONFIG_TCP_CONG_BIC=y
+          CONFIG_TCP_CONG_WESTWOOD=y
+          CONFIG_TCP_CONG_HTCP=y
+          CONFIG_DEFAULT_BBR=y
+          CONFIG_DEFAULT_TCP_CONG="bbr"
+
+    - name: Enable Traffic Shaping (Qdisc) Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_NET_SCH_FQ=y
+          CONFIG_NET_SCH_FQ_CODEL=y
+          CONFIG_NET_SCH_CAKE=y
+
+    - name: Enable Connection Marking Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_NET_ACT_CONNMARK=y
+
+    - name: Enable TTL/Hop Limit Target Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_IP_NF_TARGET_TTL=y
+          CONFIG_IP6_NF_TARGET_HL=y
+          CONFIG_IP6_NF_MATCH_HL=y
+
+    - name: Enable Wireguard VPN Configs
+      uses: ./.github/actions/set-kernel-config
+      with:
+        config_list: |
+          CONFIG_WIREGUARD=y

+ 12 - 135
.github/actions/networking/action.yml

@@ -1,5 +1,5 @@
-name: 'Setup Networking Options'
-description: 'Set up kernel configuration fragment with required options'
+name: 'Setup Networking'
+description: 'Set up all networking options (IP Set, TCP CC, Qdisc, BBRv3, CIFS, Wireguard)'
 inputs:
 inputs:
   version:
   version:
     description: 'Kernel config version (e.g., android15-6.6)'
     description: 'Kernel config version (e.g., android15-6.6)'
@@ -17,140 +17,17 @@ inputs:
 runs:
 runs:
   using: "composite"
   using: "composite"
   steps:
   steps:
-    - name: Enable IP Set & Firewall Configs
-      uses: ./.github/actions/set-kernel-config
-      with:
-        config_list: |
-          CONFIG_IP_SET=y
-          CONFIG_IP_SET_MAX=65534
-          CONFIG_IP_SET_BITMAP_IP=y
-          CONFIG_IP_SET_BITMAP_IPMAC=y
-          CONFIG_IP_SET_BITMAP_PORT=y
-          CONFIG_IP_SET_HASH_IP=y
-          CONFIG_IP_SET_HASH_IPMARK=y
-          CONFIG_IP_SET_HASH_IPPORT=y
-          CONFIG_IP_SET_HASH_IPPORTIP=y
-          CONFIG_IP_SET_HASH_IPPORTNET=y
-          CONFIG_IP_SET_HASH_IPMAC=y
-          CONFIG_IP_SET_HASH_MAC=y
-          CONFIG_IP_SET_HASH_NETPORTNET=y
-          CONFIG_IP_SET_HASH_NET=y
-          CONFIG_IP_SET_HASH_NETNET=y
-          CONFIG_IP_SET_HASH_NETPORT=y
-          CONFIG_IP_SET_HASH_NETIFACE=y
-          CONFIG_IP_SET_LIST_SET=y
-          CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
-          CONFIG_NETFILTER_XT_SET=y
-          CONFIG_NETFILTER_XT_TARGET_LOG=y
-          CONFIG_NETFILTER_XT_MATCH_RECENT=y
-          CONFIG_IP6_NF_NAT=y
-          CONFIG_IP6_NF_TARGET_MASQUERADE=y
-
-    - name: Enable TCP Congestion Control Configs
-      uses: ./.github/actions/set-kernel-config
-      with:
-        config_list: |
-          CONFIG_TCP_CONG_ADVANCED=y
-          CONFIG_TCP_CONG_BBR=y
-          CONFIG_TCP_CONG_CUBIC=y
-          CONFIG_TCP_CONG_BIC=y
-          CONFIG_TCP_CONG_WESTWOOD=y
-          CONFIG_TCP_CONG_HTCP=y
-          CONFIG_DEFAULT_BBR=y
-          CONFIG_DEFAULT_TCP_CONG="bbr"
-
-    - name: Enable Traffic Shaping (Qdisc) Configs
-      uses: ./.github/actions/set-kernel-config
-      with:
-        config_list: |
-          CONFIG_NET_SCH_FQ=y
-          CONFIG_NET_SCH_FQ_CODEL=y
-          CONFIG_NET_SCH_CAKE=y
-
-    - name: Enable Connection Marking Configs
-      uses: ./.github/actions/set-kernel-config
-      with:
-        config_list: |
-          CONFIG_NET_ACT_CONNMARK=y
-
-    - name: Enable TTL/Hop Limit Target Configs
-      uses: ./.github/actions/set-kernel-config
-      with:
-        config_list: |
-          CONFIG_IP_NF_TARGET_TTL=y
-          CONFIG_IP6_NF_TARGET_HL=y
-          CONFIG_IP6_NF_MATCH_HL=y
-
-    - name: Enable Wireguard VPN Configs
-      uses: ./.github/actions/set-kernel-config
-      with:
-        config_list: |
-          CONFIG_WIREGUARD=y
-
-    - name: Apply Kernel Config for 5.10
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      if: inputs.kernel_version == '5.10'
-      run: |
-        sed -i 's/CONFIG_IP_SET_MAX/65534/g' net/netfilter/ipset/ip_set_core.c
+    - name: Setup Networking Configs
+      uses: ./.github/actions/networking-config
 
 
-    - name: Apply BBRv3 Patch
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        set -euo pipefail
-        if [[ ${{ inputs.version }} == "android16-6.12" ]]; then
-          #patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android15-6.6.patch"
-          #patch -p1 < ${{ github.action_path }}/patches/0001-net-tcp-backport-BBRv3-to-android16-6.12.patch
-          echo "skipped"
-        elif [[ ${{ inputs.version }} == "android15-6.6" ]]; then
-          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android15-6.6.patch"
-        elif [[ ${{ inputs.version }} == "android14-6.1" ]]; then
-          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android14-6.1.patch"
-        elif [[ ${{ inputs.version }} == "android14-5.15" ]]; then
-          #patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android13-5.15.patch"
-          patch -p1 < ${{ github.action_path }}/patches/0001-net-tcp-backport-BBRv3-to-android14-5.15.patch
-        elif [[ ${{ inputs.version }} == "android13-5.15" ]]; then
-          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android13-5.15.patch"
-          if [[ ${{ inputs.sublevel }} -le "43" ]]; then
-            patch -p1 < ${{ github.action_path }}/patches/0002-net-tcp-add-tcp_snd_cwnd-and-tcp_snd_cwnd_set-helper-functions.patch
-          fi
-        elif [[ ${{ inputs.version }} == "android13-5.10" ]]; then
-          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android12-5.10.patch"
-        elif [[ ${{ inputs.version }} == "android12-5.10" ]]; then
-          patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/0001-net-tcp-backport-BBRv3-to-android12-5.10.patch"
-        fi
-
-        if [[ ${{ inputs.version }} == "android12-5.10" || ${{ inputs.version }} == "android13-5.10" ]]; then
-          if ! grep -qF 'int proc_dou8vec_minmax(' ./include/linux/sysctl.h; then
-            patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/sysctl_add_proc_dou8vec_minmax.patch"
-            patch -p1 < "${{ github.workspace }}/kernel_patches/common/bbrv3/sysctl_fix_data-races_in_proc_dou8vec_minmax.patch"
-          fi
-        fi
-
-        echo "✅ BBRv3 patches applied"
-
-    - name: Enable BBRv3 Kernel Config
-      uses: ./.github/actions/set-kernel-config
+    - name: Apply BBRv3 Patches
+      uses: ./.github/actions/bbrv3
       with:
       with:
-        config_list: |
-          CONFIG_TCP_CONG_BBR3=y
+        version: ${{ inputs.version }}
+        kernel_version: ${{ inputs.kernel_version }}
+        sublevel: ${{ inputs.sublevel }}
 
 
-    - name: Enable CIFS Configs
-      uses: ./.github/actions/set-kernel-config
+    - name: Setup CIFS Configs
+      uses: ./.github/actions/cifs
       with:
       with:
-        config_list: |
-          CONFIG_CIFS=y
-          CONFIG_NETWORK_FILESYSTEMS=y
-          CONFIG_NETFS_SUPPORT=y
-          CONFIG_KEYS=y
-          CONFIG_CIFS_XATTR=ys
-          CONFIG_CIFS_POSIX=y
-
-    - name: Fix CIFS on android16-6.12
-      shell: bash
-      working-directory: ${{ github.workspace }}/kernel/common
-      run: |
-        if [[ ${{ inputs.version }} == "android16-6.12" ]]; then
-          sed -i '/"fs\/netfs\/netfs\.ko",/d' modules.bzl
-        fi
+        version: ${{ inputs.version }}