From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay54.bu.edu (relay54.bu.edu [128.197.228.14]) by dpdk.org (Postfix) with ESMTP id 5BFA03777 for ; Tue, 3 Jan 2017 21:22:32 +0100 (CET) X-Envelope-From: doucette@bu.edu Received: from mail-wm0-f71.google.com (mail-wm0-f71.google.com [74.125.82.71]) by relay54.bu.edu (8.14.3/8.14.3) with ESMTP id v03KLxfh004583 for ; Tue, 3 Jan 2017 15:21:59 -0500 Received: by mail-wm0-f71.google.com with SMTP id u144so80826152wmu.1 for ; Tue, 03 Jan 2017 12:21:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ncuaMw/Wp6YM2Cv4826s9wulFBlB7yxjnSHQHqB7olo=; b=VVOjXdH8/sxdSeISoPc022QJPaHAxKN3zjdbSXTyp5/FVpJAi0uUraalfCg0iGw+gJ KUzRiOvshsFLs2hEkiz8hhL0UV62DvEOk1YR1zsTlTN9hs6uHrxANFUZYxDjY2pnZW0c hVhePdATU+/THYghjKdcRNF4aKQSCJnWsg2oyZ2+apWMQNT2t3oV7NZpEU0JfcepM5JY 94qPq7YotAis4ppowlg8eY6bH6vJJwqRH4KiOpd+y3snPkCMykdAqx0ZO2LIs9MWKohk 7RMtJsCb1w30gJPfGb3qoVn5jcRRPSGPM0f1tEKNg40GMP3ZiYdgy2Dc1ET9kCc8ufGr C5lg== X-Gm-Message-State: AIkVDXJCJRwOY99tQ3dnO5KRT1olvHbuHXwzW5AHzeqPN0P0u8zXVQbMP7aQZHXJ+fxRSy6Q73iEpSfH4eyW6d5pR885grh5LiUUbU9q9mVB1QAJs/yRP6GRRCZBjrLAR4ObnGDWNNYR+8xC2Q== X-Received: by 10.28.155.202 with SMTP id d193mr52364524wme.38.1483474918531; Tue, 03 Jan 2017 12:21:58 -0800 (PST) X-Received: by 10.28.155.202 with SMTP id d193mr52364513wme.38.1483474918270; Tue, 03 Jan 2017 12:21:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.57.7 with HTTP; Tue, 3 Jan 2017 12:21:57 -0800 (PST) From: Cody Doucette Date: Tue, 3 Jan 2017 15:21:57 -0500 Message-ID: To: users@dpdk.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-users] Flow Director for IPv6, flex bytes X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Jan 2017 20:22:32 -0000 I'm trying to use Flow Director on an 82599 NIC to match the IPv6 proto and hop limit fields. I've been able to get something analogous working for IPv4, but changing the flow type to IPv6 breaks it. Does anyone have any pointers to working examples of Flow Director for IPv6 flows? My Flow Director configuration is: (It seems to be a driver requirement that we use RTE_ETH_RAW_PAYLOAD and RTE_ETH_FLOW_UNKNOWN below): .fdir_conf = { .mode = RTE_FDIR_MODE_PERFECT, .pballoc = RTE_FDIR_PBALLOC_64K, .status = RTE_FDIR_REPORT_STATUS_ALWAYS, .drop_queue = DROP_QUEUE, .mask = { .vlan_tci_mask = 0x0, .ipv4_mask = { .src_ip = 0, .dst_ip = 0, }, .ipv6_mask = { .src_ip = { 0, 0, 0, 0}, .dst_ip = { 0, 0, 0, 0}, }, .src_port_mask = 0, .dst_port_mask = 0, .mac_addr_byte_mask = 0, .tunnel_type_mask = 0, .tunnel_id_mask = 0, }, .flex_conf = { .nb_payloads = 1, .nb_flexmasks = 1, .flex_set = { [0] = { .type = RTE_ETH_RAW_PAYLOAD, .src_offset = { FDIR_FLEX_OFFSET, FDIR_FLEX_OFFSET + 1, }, }, }, .flex_mask = { [0] = { .flow_type = RTE_ETH_FLOW_UNKNOWN, .mask = { [0] = 0xFF, [1] = 0xFF, }, }, }, }, }, And then this filter works for IPv4 packets: struct rte_eth_fdir_filter filter = { .soft_id = soft_id, .input = { .flow_type = RTE_ETH_FLOW_IPV4, .flow_ext = { .vlan_tci = 0, .flexbytes = { 0x40, 0x01, }, .is_vf = 0, .dst_id = 0, }, }, .action = { .rx_queue = queue_id, }, }; But this filter does not work for IPv6 packets (and neither does changing the flow type to anything else): struct rte_eth_fdir_filter filter = { .soft_id = soft_id, .input = { .flow_type = RTE_ETH_FLOW_IPV6, .flow_ext = { .vlan_tci = 0, .flexbytes = { 0x3A, 0x55, }, .is_vf = 0, .dst_id = 0, }, }, .action = { .rx_queue = queue_id, }, };