From patchwork Fri Oct 30 21:00:20 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: arwelle@cert.org X-Patchwork-Id: 7529241 X-Patchwork-Delegate: johannes@sipsolutions.net Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 92243BEEA4 for ; Fri, 30 Oct 2015 21:12:36 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CA6FF206F0 for ; Fri, 30 Oct 2015 21:12:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E0D57206EC for ; Fri, 30 Oct 2015 21:12:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1030810AbbJ3VMd (ORCPT ); Fri, 30 Oct 2015 17:12:33 -0400 Received: from shetland.sei.cmu.edu ([192.58.107.44]:35583 "EHLO shetland.sei.cmu.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760668AbbJ3VMa (ORCPT ); Fri, 30 Oct 2015 17:12:30 -0400 Received: from timber.sei.cmu.edu (timber.sei.cmu.edu [10.64.21.23]) by shetland.sei.cmu.edu (8.14.4/8.14.4/1408) with ESMTP id t9UL0Rj1006292; Fri, 30 Oct 2015 17:00:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cert.org; s=jthatj15xw2j; t=1446238827; bh=WMQv1etdajAqay0MtHem9gr2hfNYort8rELy7oB/04A=; h=From:To:Cc:Subject:Date:Message-Id:Sender:Reply-To; b=mOd5uMWKN7jonHYv5fXZgb1MXb1o5QicFhPIFzMaw6FI8RpwSNDs1QxCmAty4QW0F qnAtSeBDL+uXNSnyem6u5ovHj3CaRLg6cYLUziHxxfUN5DtLyZvgp4xBighpKjuybk 8gTTyCTRA9Q/MYcs8ldxHlgTCPuk6kocaOQjhyho= Received: from bucknell.indigo.cert.org (sslvpn-96-134.sei.cmu.edu [10.64.96.134]) by timber.sei.cmu.edu (8.14.4/8.14.4/1456) with ESMTP id t9UL0O7d010327; Fri, 30 Oct 2015 17:00:24 -0400 From: arwelle@cert.org To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org Subject: [RFC] mac80211_hwsim: Implements a check for ATTR_FREQ inside hwsim_cloned_frame_received_nl Date: Fri, 30 Oct 2015 17:00:20 -0400 Message-Id: <1446238820-21004-1-git-send-email-arwelle@cert.org> X-Mailer: git-send-email 2.1.4 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Adam Welle If a frame is received from netlink with this value set it is checked against the current radio's frequency and discarded if different. Signed-off-by: Adam Welle --- drivers/net/wireless/mac80211_hwsim.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index ee46f46..78faa72 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -2827,10 +2827,17 @@ static int hwsim_cloned_frame_received_nl(struct sk_buff *skb_2, /* A frame is received from user space */ memset(&rx_status, 0, sizeof(rx_status)); - /* TODO: Check ATTR_FREQ if it exists, and maybe throw away off-channel - * packets? - */ - rx_status.freq = data2->channel->center_freq; + + /* Check ATTR_FREQ if it exists, and throw away off-channel packets */ + if (info->attrs[HWSIM_ATTR_FREQ]) + rx_status.freq = nla_get_u32(info->attrs[HWSIM_ATTR_FREQ]); + else + rx_status.freq = data2->channel->center_freq; + + /* Drop packet if not on the same frequency as this radio */ + if (rx_status.freq != data2->channel->center_freq) + goto out; + rx_status.band = data2->channel->band; rx_status.rate_idx = nla_get_u32(info->attrs[HWSIM_ATTR_RX_RATE]); rx_status.signal = nla_get_u32(info->attrs[HWSIM_ATTR_SIGNAL]);