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)
}