Lines Matching refs:br

138   bridgeif_private_t *br;
141 br = (bridgeif_private_t *)bridgeif->state;
142 LWIP_ASSERT("invalid state", br != NULL);
145 for (i = 0; i < br->max_fdbs_entries; i++) {
146 if (!br->fdbs[i].used) {
148 if (!br->fdbs[i].used) {
149 br->fdbs[i].used = 1;
150 br->fdbs[i].dst_ports = ports;
151 memcpy(&br->fdbs[i].addr, addr, sizeof(struct eth_addr));
171 bridgeif_private_t *br;
174 br = (bridgeif_private_t *)bridgeif->state;
175 LWIP_ASSERT("invalid state", br != NULL);
178 for (i = 0; i < br->max_fdbs_entries; i++) {
179 if (br->fdbs[i].used && !memcmp(&br->fdbs[i].addr, addr, sizeof(struct eth_addr))) {
181 if (br->fdbs[i].used && !memcmp(&br->fdbs[i].addr, addr, sizeof(struct eth_addr))) {
182 memset(&br->fdbs[i], 0, sizeof(bridgeif_fdb_static_entry_t));
196 bridgeif_find_dst_ports(bridgeif_private_t *br, struct eth_addr *dst_addr)
202 for (i = 0; i < br->max_fdbs_entries; i++) {
203 if (br->fdbs[i].used) {
204 if (!memcmp(&br->fdbs[i].addr, dst_addr, sizeof(struct eth_addr))) {
205 bridgeif_portmask_t ret = br->fdbs[i].dst_ports;
218 return bridgeif_fdb_get_dst_ports(br->fdbd, dst_addr);
226 bridgeif_is_local_mac(bridgeif_private_t *br, struct eth_addr *addr)
230 if (!memcmp(br->netif->hwaddr, addr, sizeof(struct eth_addr))) {
234 for (i = 0; i < br->num_ports; i++) {
235 struct netif *portif = br->ports[i].port_netif;
249 bridgeif_send_to_port(bridgeif_private_t *br, struct pbuf *p, u8_t dstport_idx)
253 if (dstport_idx < br->max_ports) {
254 struct netif *portif = br->ports[dstport_idx].port_netif;
259 LWIP_DEBUGF(BRIDGEIF_FW_DEBUG, ("br -> flood(%p:%d) -> %d\n", (void *)p, p->if_idx, netif_get_index(portif)));
274 bridgeif_send_to_ports(bridgeif_private_t *br, struct pbuf *p, bridgeif_portmask_t dstports)
283 err = bridgeif_send_to_port(br, p, i);
301 bridgeif_private_t *br = (bridgeif_private_t *)netif->state;
304 bridgeif_portmask_t dstports = bridgeif_find_dst_ports(br, dst);
305 err = bridgeif_send_to_ports(br, p, dstports);
331 bridgeif_private_t *br;
341 br = (bridgeif_private_t *)port->bridge;
351 bridgeif_fdb_update_src(br->fdbd, src, port->port_num);
356 dstports = bridgeif_find_dst_ports(br, dst);
357 bridgeif_send_to_ports(br, p, dstports);
360 LWIP_DEBUGF(BRIDGEIF_FW_DEBUG, ("br -> input(%p)\n", (void *)p));
361 if (br->netif->input(p, br->netif) != ERR_OK) {
372 if (bridgeif_is_local_mac(br, dst)) {
374 LWIP_DEBUGF(BRIDGEIF_FW_DEBUG, ("br -> input(%p)\n", (void *)p));
375 return br->netif->input(p, br->netif);
379 dstports = bridgeif_find_dst_ports(br, dst);
380 bridgeif_send_to_ports(br, p, dstports);
416 bridgeif_private_t *br;
441 br = (bridgeif_private_t *)mem_calloc(1, alloc_len);
442 if (br == NULL) {
446 memcpy(&br->ethaddr, &init_data->ethaddr, sizeof(br->ethaddr));
447 br->netif = netif;
449 br->max_ports = init_data->max_ports;
450 br->ports = (bridgeif_port_t *)(br + 1);
452 br->max_fdbs_entries = init_data->max_fdb_static_entries;
453 br->fdbs = (bridgeif_fdb_static_entry_t *)(((u8_t *)(br + 1)) + (init_data->max_ports * sizeof(bridgeif_port_t)));
455 br->max_fdbd_entries = init_data->max_fdb_dynamic_entries;
456 br->fdbd = bridgeif_fdb_init(init_data->max_fdb_dynamic_entries);
457 if (br->fdbd == NULL) {
459 mem_free(br);
475 netif->state = br;
494 memcpy(netif->hwaddr, &br->ethaddr, ETH_HWADDR_LEN);
526 bridgeif_private_t *br;
538 br = (bridgeif_private_t *)bridgeif->state;
540 if (br->num_ports >= br->max_ports) {
543 port = &br->ports[br->num_ports];
545 port->port_num = br->num_ports;
546 port->bridge = br;
547 br->num_ports++;