daniel-p-carvalho commented on PR #20519:
URL: https://github.com/apache/nuttx/pull/20519#issuecomment-6100618694

   The bridge is now restructured as requested: it is a `netdev_lowerhalf_s` in
   `drivers/net/bridge.c`, registered with `netdev_lower_register()` like the
   VLAN device, and the head of this PR (`dcd25ab9e9`) replaces the first
   revision. What changed:
   
   * `struct net_driver_s`, `devif_poll()`/`BRIDGE_POLL` and the
     `ipv4_input()`/`ipv6_input()`/`arp_input()` hooks are gone. The upper half
     of a port gives every received packet to `bridge_input()` after
     `pkt_input()`, and `netdev_lower_input()` passes the packets for the local
     host to the stack through `br0`.
   * There is no per-port TX queue any more: the bridge calls the `transmit`
     operation of the egress port, and the TX quota of `br0` follows the room
     of its ports (resumed on a completed transmission), so the stack is not
     polled when a port is full.
   * Ports must use the upper half interface, others are refused with
     `EOPNOTSUPP`. The PIC32MZ Ethernet driver is converted in #20576.
   
   Results are in the description: simulator 16/16 (forwarded TCP 381 Mbit/s,
   UDP 20 Mbit/s without loss, TCP to `br0` 244 Mbit/s; they were 308 /
   ~10% lost / 85 with the first revision), and on the PIC32MZ-W1 board with
   Ethernet and the Wi-Fi access point as ports: forwarding both ways,
   re-associations and DHCP on `br0` work.
   
   The CI failure of `sim/bridge` ("Normalize") is the dependency on
   apache/nuttx-apps#3819 (`brctl`); it should pass once that is merged.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to