[][openwrt][mt7988][crypto][Add support for route-based IPSec]

[Description]
Add support for route-based IPSec.

1. Refactor dst mac dicover for IPSec
In the past, we use tunnel dst IP to find a nexthop, then use nexthop
to find dst mac. However, for the route-based vti, we can't find the
real nexthop. We should use tunnel dst IP to find dst mac directly.

2. Add check for VTI
If the packet has passed through VTI (ex. route-based IPSec), the
'dev_queue_xmit' function called at network layer will cause both
skb->mac_header and skb->network_header to point to the IP header. In
this situation, 'skb_to_hnat_info' cannot correctly fill in the inner
layer information, and it needs to be filled in by
'hnat_bind_crypto_entry'.

[Release-log]
N/A


Change-Id: Ie63a7d18f0cee5b9caca63251fc5fba5f52f1ee3
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/9298628
1 file changed
tree: d7236cbec04bf6b623442c2d7d2a8cab37595712
  1. 21.02/
  2. autobuild_mac80211_release/
  3. feed/
  4. master/
  5. scripts/
  6. tools/
  7. .checkpatch.conf
  8. .clang-format
  9. .gitignore
  10. prepare_sdk.sh
  11. Readme.md
Readme.md

Brief introduction for using MediaTek released OpenWrt SDK

1. Build system setup

2. Clone vanilla OpenWrt

Currently two release branches are supported:

  1. 21.02 This is the current in-use branch

    git clone -b openwrt-21.02 https://git.openwrt.org/openwrt/openwrt.git
    
  2. master (will be 24.0x branch later) The next version in development

    git clone https://git.openwrt.org/openwrt/openwrt.git
    

3. Add MediaTek OpenWrt feed

cd openwrt
echo "src-git mtk_openwrt_feed https://git01.mediatek.com/openwrt/feeds/mtk-openwrt-feeds" >> feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a

4. Apply MediaTek OpenWrt files and patches

  1. 21.02 branch

    cp -af ./feeds/mtk_openwrt_feed/21.02/files/* .
    cp -af ./feeds/mtk_openwrt_feed/tools .
    for file in $(find ./feeds/mtk_openwrt_feed/21.02/patches-base -name "*.patch" | sort); do patch -f -p1 -i ${file}; done
    for file in $(find ./feeds/mtk_openwrt_feed/21.02/patches-feeds -name "*.patch" | sort); do patch -f -p1 -i ${file}; done
    
  2. master branch

    cp -af ./feeds/mtk_openwrt_feed/master/files/* .
    for file in $(find ./feeds/mtk_openwrt_feed/master/patches-base -name "*.patch" | sort); do patch -f -p1 -i ${file}; done
    

5. Configuration

make menuconfig
  1. 21.02 branch

    Target System -> MediaTek Ralink ARM
    Subtarget -> MT7981 / MT7986 / MT7988
    Target Profile -> select as needed
    
  2. master branch

    Target System -> MediaTek Ralink ARM
    Subtarget -> Filogic 8x0 (MT798x)
    Target Profile -> select as needed
    

6. Build

make V=s -j$(nproc)