コード例 #1
0
ファイル: socend.c プロジェクト: ariavie/bcm
STATUS
socend_mcast_del(_END_OBJ_PAR *p, char *a)
/*
 * Function: 	socend_mcast_del
 * Purpose:	SENS interface to add a multicast address for the interface.
 * Parameters:	p - pointer to VxWorks end_obj structure for device
 *		a - pointer to address to delete
 * Returns:	OK/ERROR
 */
{
    struct end_object *eo = (struct end_object *)p;
    socend_t *se = (socend_t *)eo->devObject.pDevice;
    int ret;

    if (ENETRESET == etherMultiDel(&eo->multiList, a)) {
#if 0	
	bcm_amux_unregister(se->se_unit, (uint8 *)a, se->se_vlan);
#endif
	ret = bcm_mcast_addr_remove(se->se_unit, (uint8 *)a, se->se_vlan);
	if (ret == BCM_E_NONE) {
	    return (OK);
	} else {
	    LOG_CLI((BSL_META("bcm_mcast_addr_remove failed ERROR : %s\n"),
                     bcm_errmsg(ret)));
	    LOG_INFO(BSL_LS_SYS_END,
                     (BSL_META("socend_mcast_del: Unit %d Device %s%d Software RESET\n"),
                      se->se_unit, eo->devObject.name, eo->devObject.unit));
	}
    }
    return(ENOSYS);
}
コード例 #2
0
/* VA device multicast address delete handler. */
static STATUS vxworks_va_mcast_addr_del(END_OBJ *end, char *addr)
{
  VxWorksVa *va = (void *)end;

  SSH_DEBUG(SSH_D_MIDOK, ("mcast addr del on %s", va->name));

  etherMultiDel(&va->end.multiList, addr);
  return OK;
}
コード例 #3
0
ファイル: netdrv.c プロジェクト: ariavie/bcm
/**
 *
 * NetdrvMCastDel - delete a multicast address for the device
 *
 * This routine removes a multicast address from whatever the driver
 * is listening for.  It then resets the address filter.
 *
 * RETURNS: OK or ERROR.
 *
 *
 **/
LOCAL STATUS
NetdrvMCastDel(END_DEVICE *pDrvCtrl, /* device pointer */
               char* pAddress)       /* address to be deleted */
{
    int error;

    if ((error = etherMultiDel (&pDrvCtrl->end.multiList,
                                (char *)pAddress)) == ENETRESET) {
        NetdrvConfig(pDrvCtrl);
    }

    return (OK);
}
LOCAL STATUS mirrorEndMCastAddrDel
    (
    END_CTRL *  pDrvCtrl,       /* pointer to END_CTRL structure */
    char *      pAddr           /* Address to delete from the table. */
    )
    {
    STATUS error;

    error = etherMultiDel(&pDrvCtrl->endObject.multiList, pAddr);

    if (error == ENETRESET)
        {
        pDrvCtrl->endObject.nMulti--;
        error = OK;
        }

    return (error == OK) ? OK : ERROR;
    }