From patchwork Sat Jun 30 11:26:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Miguel_Rodr=C3=ADguez_P=C3=A9rez?= X-Patchwork-Id: 10498151 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9ACFE60230 for ; Sat, 30 Jun 2018 11:27:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 816F6291ED for ; Sat, 30 Jun 2018 11:27:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 73AC8291EF; Sat, 30 Jun 2018 11:27:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F0E50291ED for ; Sat, 30 Jun 2018 11:27:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030203AbeF3L1G (ORCPT ); Sat, 30 Jun 2018 07:27:06 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:45122 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936139AbeF3L1E (ORCPT ); Sat, 30 Jun 2018 07:27:04 -0400 Received: by mail-wr0-f194.google.com with SMTP id u7-v6so11108741wrn.12 for ; Sat, 30 Jun 2018 04:27:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=det.uvigo.gal; s=clouddet; h=subject:from:to:cc:references:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=t5snDVrRuUU8UeyZN0zMwj9eLKjmrH4Tk1xKNHRFuHM=; b=XpH+f+lUAykYaX/sjKbsnnBOPn+uIj4j9BSWRUrsoSQI6KM02xnJkXb7NgO9PpUXEb gIwDpbbHpJf9lpLkrFkTjX5/jISupRzlS2q/Bm7fs+9ulMZldUoWL9PTPn9GzeVvR0m9 DecJVGzEg344w5rRQvKnnX9PsmftdE6qdSxg4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=t5snDVrRuUU8UeyZN0zMwj9eLKjmrH4Tk1xKNHRFuHM=; b=KBEFInZS7fbZpUu4aFoLLra0TKCSPrLjupS/xhFXU8Fo35eF0O8Fe8C6H0ypedE2Iu ddoHF2x2hP68JZcU60ixYpHEzq5hlcY8fij+yIRcE1i3AFpCa7iIu2E9bNxbKz37Pofy QbbBU3f2l3V2mtozsDtTQ2zsYfqz9iEmnVyeDhBin7Z6kEM+Lf2M71pqEtF9CR168Kmq dzbmjeKFv8LreE3cS7nq290cofJ+N8lboLaneJMkrnK19JEa7wGceTW1LtTygGEaLNrE q1EleAWR6/a27U13yrG+rit9PCp9/lVh8lBSrcA2JBjh0aX+RyZF5obmMtmcIMlS7i3i KtRA== X-Gm-Message-State: APt69E0O4E4/mkEQCiXJ5ol/NYNtIN9dYfzMyA/DSVU0IjM5NjFoc5W9 G9eLe2pBuuyxNfZ6crsvMQ3qJA== X-Google-Smtp-Source: AAOMgpfRnR7xBv9iUCPgYoLy9dpIyd96ECanSLFOIobZSaTjw0SkF5rHr+yyycW/eN+tP4Y+kfyjPg== X-Received: by 2002:adf:a6b8:: with SMTP id t53-v6mr15392826wrc.45.1530358023454; Sat, 30 Jun 2018 04:27:03 -0700 (PDT) Received: from [192.168.1.19] ([82.213.239.84]) by smtp.gmail.com with ESMTPSA id j10-v6sm15743928wrr.47.2018.06.30.04.27.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Jun 2018 04:27:02 -0700 (PDT) Subject: Re: [PATCH 2/2] cdc_ncm: Admit multicast traffic From: =?UTF-8?Q?Miguel_Rodr=c3=adguez_P=c3=a9rez?= To: linux-usb@vger.kernel.org Cc: netdev@vger.kernel.org References: <69bbee1a-9a88-eabe-554f-fbc59e7fde79@det.uvigo.gal> Openpgp: preference=signencrypt Autocrypt: addr=miguel@det.uvigo.gal; prefer-encrypt=mutual; keydata= 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 YHInhj+XVbAEvSrkZFlI6GfCPjY= Message-ID: Date: Sat, 30 Jun 2018 13:26:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <69bbee1a-9a88-eabe-554f-fbc59e7fde79@det.uvigo.gal> Content-Language: en-US Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some CDC_NCM devices are used as docks for laptops. In this case, it makes sense to accept multicast Ethernet traffic, as these devices can reside in a proper LAN. Without this, mDNS or IPv6 simply do not work. Signed-off-by: Miguel Rodríguez Pérez --- drivers/net/usb/cdc_ncm.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) .get_link = usbnet_get_link, .nway_reset = usbnet_nway_reset, @@ -1652,6 +1679,7 @@ static const struct driver_info cdc_ncm_info = { .status = cdc_ncm_status, .rx_fixup = cdc_ncm_rx_fixup, .tx_fixup = cdc_ncm_tx_fixup, + .set_rx_mode = cdc_ncm_update_filter, }; /* Same as cdc_ncm_info, but with FLAG_WWAN */ diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index d6b51e2b9495..50af1d9d0102 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -132,6 +132,33 @@ static void cdc_ncm_get_strings(struct net_device __always_unused *netdev, u32 s static void cdc_ncm_update_rxtx_max(struct usbnet *dev, u32 new_rx, u32 new_tx); +static void cdc_ncm_update_filter(struct usbnet *dev) +{ + struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; + u8 iface_no = ctx->control->cur_altsetting->desc.bInterfaceNumber; + struct net_device *net = dev->net; + + u16 cdc_filter = USB_CDC_PACKET_TYPE_DIRECTED + | USB_CDC_PACKET_TYPE_BROADCAST; + + /* filtering on the device is an optional feature and not worth + * the hassle so we just roughly care about snooping and if any + * multicast is requested, we take every multicast + */ + if (net->flags & IFF_PROMISC) + cdc_filter |= USB_CDC_PACKET_TYPE_PROMISCUOUS; + if (!netdev_mc_empty(net) || (net->flags & IFF_ALLMULTI)) + cdc_filter |= USB_CDC_PACKET_TYPE_ALL_MULTICAST; + + usbnet_write_cmd(dev, + USB_CDC_SET_ETHERNET_PACKET_FILTER, + USB_TYPE_CLASS | USB_DIR_OUT | USB_RECIP_INTERFACE, + cdc_filter, + iface_no, + NULL, + 0); +} + static const struct ethtool_ops cdc_ncm_ethtool_ops = {