- Timestamp:
- 03/28/11 12:27:29 (13 years ago)
- Branches:
- 4.11, 5, master
- Children:
- 49a97a91
- Parents:
- f437107
- Location:
- c/src/lib/libbsp/arm
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/libbsp/arm/ChangeLog
rf437107 rc4d9f313 5 5 * shared/startup/linkcmds.base: Move unsupported sections into 6 6 read-only section. Changed barrier sections. 7 * shared/lpc/network/lpc-ethernet.c: Support multicast. 7 8 8 9 2011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org> -
c/src/lib/libbsp/arm/shared/lpc/network/lpc-ethernet.c
rf437107 rc4d9f313 8 8 9 9 /* 10 * Copyright (c) 2009 11 * embedded brains GmbH 12 * Obere Lagerstr. 30 13 * D-82178 Puchheim 14 * Germany 15 * <rtems@embedded-brains.de> 10 * Copyright (c) 2009-2011 embedded brains GmbH. All rights reserved. 11 * 12 * embedded brains GmbH 13 * Obere Lagerstr. 30 14 * 82178 Puchheim 15 * Germany 16 * <rtems@embedded-brains.de> 16 17 * 17 18 * The license and distribution terms for this file may be … … 355 356 { 356 357 if (enable) { 357 lpc_eth->rxfilterctrl = ETH_RX_FIL_CTRL_ACCEPT_PERFECT 358 | ETH_RX_FIL_CTRL_ACCEPT_UNICAST 358 lpc_eth->rxfilterctrl = ETH_RX_FIL_CTRL_ACCEPT_UNICAST 359 359 | ETH_RX_FIL_CTRL_ACCEPT_MULTICAST 360 360 | ETH_RX_FIL_CTRL_ACCEPT_BROADCAST; 361 361 } else { 362 362 lpc_eth->rxfilterctrl = ETH_RX_FIL_CTRL_ACCEPT_PERFECT 363 | ETH_RX_FIL_CTRL_ACCEPT_MULTICAST 363 364 | ETH_RX_FIL_CTRL_ACCEPT_BROADCAST; 364 365 } … … 1292 1293 { 1293 1294 lpc_eth_driver_entry *e = (lpc_eth_driver_entry *) ifp->if_softc; 1294 int rv = 0; 1295 struct ifreq *ifr = (struct ifreq *) data; 1296 int eno = 0; 1295 1297 1296 1298 LPC_ETH_PRINTF("%s\n", __func__); … … 1314 1316 } 1315 1317 break; 1318 case SIOCADDMULTI: 1319 case SIOCDELMULTI: { 1320 eno = (command == SIOCADDMULTI) ? ether_addmulti(ifr, &e->arpcom) 1321 : ether_delmulti(ifr, &e->arpcom); 1322 if (eno == ENETRESET) { 1323 /* TODO: Use imperfect hash filter */ 1324 eno = 0; 1325 } 1326 break; 1327 } 1316 1328 case SIO_RTEMS_SHOW_STATS: 1317 1329 lpc_eth_interface_stats(e); 1318 1330 break; 1319 1331 default: 1320 rv= EINVAL;1332 eno = EINVAL; 1321 1333 break; 1322 1334 } 1323 1335 1324 return rv;1336 return eno; 1325 1337 } 1326 1338 … … 1505 1517 ifp->if_output = ether_output; 1506 1518 ifp->if_watchdog = lpc_eth_interface_watchdog; 1507 ifp->if_flags = config->ignore_broadcast ? 0 : IFF_BROADCAST;1519 ifp->if_flags = IFF_MULTICAST | IFF_BROADCAST | IFF_SIMPLEX; 1508 1520 ifp->if_snd.ifq_maxlen = ifqmaxlen; 1509 1521 ifp->if_timer = 0;
Note: See TracChangeset
for help on using the changeset viewer.