#!/bin/sh #For non offload - sh hsr_setup.sh hsr_sw #For offload - sh hsr_setup.sh hsr_hw if [ "$#" != "4" ] then echo "$0 " exit fi if [ "$1" != "hsr_sw" ] && [ "$1" != "hsr_hw" ] then echo "$0 " exit fi if=hsr0 ifa=$2 ifb=$3 ip=$4 mac=`ifconfig $ifa | grep ether | cut -d " " -f 10` # Hardcode the device name device="platform/icssg1-eth" #device+=`dmesg | grep $ifa | grep icssg-prueth | grep -m 1 "Link is Up" | awk '{print $4}'` echo "ip=$ip" echo "if=$if" echo "mac=$mac" echo "slave-a=$ifa" echo "slave-b=$ifb" echo "device=$device" ip link delete hsr0 2> /dev/null ip link set $ifa down ip link set $ifb down sleep 1 if [ "$1" == "hsr_hw" ] then ethtool -k "$ifa" | grep hsr ethtool -K "$ifa" hsr-fwd-offload on ethtool -K "$ifa" hsr-dup-offload on ethtool -K "$ifa" hsr-tag-ins-offload on ethtool -K "$ifa" hsr-tag-rm-offload on ethtool -k "$ifa" | grep hsr ethtool -k "$ifb" | grep hsr ethtool -K "$ifb" hsr-fwd-offload on ethtool -K "$ifb" hsr-dup-offload on ethtool -K "$ifb" hsr-tag-ins-offload on ethtool -K "$ifb" hsr-tag-rm-offload on ethtool -k "$ifb" | grep hsr devlink dev param set "$device" name hsr_offload_mode value true cmode runtime sleep 3 # Enable Cut-Through : devlink dev param set "$device" name cut_thru value 65535 cmode runtime fi ip link set dev $ifa address $mac ip link set dev $ifb address $mac ip link set $ifa up sleep 1 ip link set $ifb up sleep 1 ip link add name $if type hsr slave1 $ifa slave2 $ifb supervision 45 version 1 sleep 3 ip addr add $ip/24 dev $if ip link set $if up