1. bcm_auth_init初始化auth api 模块
2. bcm_auth_mode_set配置端口auth模式
BCM_AUTH_MODE_UNCONTROLLED 不开启AUTH
BCM_AUTH_MODE_UNAUTH 未认证模式
Addition flags BCM_AUTH_BLOCK_IN 允许出口报文
BCM_AUTH_BLOCK_IN/OUT 不允许所有报文
BCM_AUTH_MODE_AUTH 已认证模式
Addtion flags BCM_AUTH_lEARN 开启MAC 学习
BCM_AUTH_IGNORE_LINK 不关心link状态 否则link变化时认证模式也会改变
BCM_AUTH_IGNORE_VIOLATION
BCM_AUTH_DROP_UNKNOW
3. bcm_auth_egress_set
开启出口发包。 发完EAPOL 后要disable
4. bcm_auth_mac_add
标志那些源地址的eapol会被拷贝到CPU。
5. bcm_auth_mac_control_set
标志哪些类型的报文会穿越AUTH验证。
6. bcm_l2_addr_add 添加静态MAC地址并把auth置位。
实际使用中 一般步骤
bcm_auth_mode_set(port, BCM_AUTH_MODE_UNAUTH|BCM_AUTH_BLOCAK_IN/OUT)
bcm_auth_egress_set(port,enable)
traffic eapol
bcm_auth_egress_set(port, disable)
if(pass) {
bcm_l2_addr_add(port, mac)
bcm_auth_mode_set(port, BCM_AUTH_MODE_AUTH|BCM_AUTH_IGNORE_LINK|BCM_AUTH_IGNORE_VIOLATION|BCM_AUTH_DROP_UNKNOW)
}