#!/bin/sh /etc/rc.common START=50 ad100base_ctrl() { # <0|1> local val=0 swconfig dev $1 set phy $2 # Auto-Negotiation Advertisement # 4.7 100BASE-TX # 4.8 100BASE-TX full duplex swconfig dev $1 set reg 4 val=$(swconfig dev $1 get val) swconfig dev $1 set val $((val^(-$3^val)&0x180)) # 0.9 Restart Auto-Negotiation swconfig dev $1 set reg 0 val=$(swconfig dev $1 get val) swconfig dev $1 set val $((val^(-1^val)&0x200)) } start() { local port=0 for port in $(seq 0 3) do ad100base_ctrl eth0 $port 0 logger -t switch disabled Auto-Negotiation Advertisement for 100BASE-TX on port $port done } stop() { local port=0 for port in $(seq 0 3) do ad100base_ctrl eth0 $port 1 logger -t switch enabled Auto-Negotiation Advertisement for 100BASE-TX on port $port done }