Changeset 36353
- Timestamp:
- 2013-04-17T17:36:57+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/package/mac80211/files/lib/wifi/mac80211.sh
r35986 r36353 271 271 272 272 mac80211_generate_mac() { 273 local off="$1"274 local mac="$2"273 local id="$1" 274 local ref="$2" 275 275 local mask="$3" 276 local oIFS="$IFS"; IFS=":"; set -- $mac; IFS="$oIFS" 277 278 local b2mask=0x00 279 [ $off -gt 0 ] && 280 [ "$mask" = "00:00:00:00:00:00" -o $(( 0x${mask%%:*} & 0x2 )) -gt 0 ] && b2mask=0x02 281 282 printf "%02x:%s:%s:%s:%02x:%02x" \ 283 $(( 0x$1 | $b2mask )) $2 $3 $4 \ 284 $(( (0x$5 + ($off / 0x100)) % 0x100 )) \ 285 $(( (0x$6 + $off) % 0x100 )) 276 277 [ "$mask" = "00:00:00:00:00:00" ] && mask="ff:ff:ff:ff:ff:ff"; 278 local oIFS="$IFS"; IFS=":"; set -- $mask; IFS="$oIFS" 279 280 local mask1=$1 281 local mask6=$6 282 283 local oIFS="$IFS"; IFS=":"; set -- $ref; IFS="$oIFS" 284 [ "$((0x$mask1))" -gt 0 ] && { 285 b1=$(((0x$1 | 0x2) ^ ($id << 2))) 286 printf "%02x:%s:%s:%s:%s:%s" $b1 $2 $3 $4 $5 $6 287 return 288 } 289 290 [ "$((0x$mask6))" -lt 255 ] && { 291 printf "%s:%s:%s:%s:%s:%02x" $1 $2 $3 $4 $5 $(( 0x$6 ^ $id )) 292 return 293 } 294 295 off2=$(( (0x$6 + $id) / 0x100 )) 296 printf "%s:%s:%s:%s:%02x:%02x" \ 297 $1 $2 $3 $4 \ 298 $(( (0x$5 + $off2) % 0x100 )) \ 299 $(( (0x$6 + $id) % 0x100 )) 286 300 } 287 301
Note: See TracChangeset
for help on using the changeset viewer.