Linux bridge forwarding table

https://forum.openwrt.org/t/linux-bridge-forwarding-table/126169

#!/bin/sh

lookup_port() {
	local bridge=$1
	local portno=$(printf "0x%x" $2)
	local path

	for path in $(grep -l $portno /sys/class/net/"$bridge"/lower_*/brport/port_no); do
		basename $(readlink "${path%/brport/port_no}")
		return 0
	done

	return 1
}

parse_fdb() {
	local bridge=$1
	local callback=${2:-echo}
	local record

	IFS=$'\n'

	for record in $(
		hexdump -v -e '5/1 "%02x:" 1/1 "%02x " 1/1 "%u " 1/1 "%u " 1/4 "%u " 1/1 "%u " 3/1 "" "\n"' \
			"/sys/class/net/$bridge/brforward"
	); do
		IFS=' '
		set -- $record

		local mac=$1
		local port=$(lookup_port "$bridge" $(($5 << 16 | $2)))
		local islocal=$3
		local timer=$4

		${callback:-echo} "$mac" "$port" "$islocal" "$timer" 
	done
}

dump_entry() {
	local mac=$1
	local ifname=$2
	local islocal=$3
	local timer=$4

	printf "MAC: %s  Ifname: %s\tLocal? %d  Timer: %d.%d\n" \
		"$mac" "$ifname" "$islocal" \
		$((timer / 100)) $((timer % 100))
}

parse_fdb "${1:-br-lan}" dump_entry

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:36:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:36:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:36:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:36:01       20 阅读

热门阅读

  1. 2024-04-22(AJAX)

    2024-04-23 01:36:01       13 阅读
  2. Ubuntu22.04.4 - 安装后使用笔记目录-VMware

    2024-04-23 01:36:01       15 阅读
  3. 基于Python对豆瓣电影数据爬虫的设计与实现

    2024-04-23 01:36:01       13 阅读
  4. Es批量删除DeleteByQueryRequestBuilder

    2024-04-23 01:36:01       14 阅读
  5. Unity3D 分块编辑小AStar地图详解

    2024-04-23 01:36:01       11 阅读
  6. 卸载并升级pytorch安装torcheval

    2024-04-23 01:36:01       13 阅读
  7. CV 面试指南—深度学习知识点总结(1)

    2024-04-23 01:36:01       15 阅读
  8. 前端CSS基础2(CSS基本选择器和复合选择器)

    2024-04-23 01:36:01       10 阅读
  9. 面试题

    面试题

    2024-04-23 01:36:01      16 阅读
  10. /bin/sh: 1: arm-linux-g++: not found

    2024-04-23 01:36:01       16 阅读