- if(packet->data[0] & 0x01) /* Broadcast? */
- broadcast_packet(source, packet); /* If yes, spread it on */
+ {
+ subnet_t *subnet;
+
+ subnet = lookup_subnet_mac((mac_t *)(&packet->data[0]));
+
+ if(subnet)
+ {
+ if(subnet->owner == myself)
+ write_packet(packet);
+ else
+ send_packet(subnet->owner, packet);
+ }
+ else
+ {
+ broadcast_packet(source, packet);
+ write_packet(packet);
+ }
+ }