From owner-freebsd-net@FreeBSD.ORG Sun May 3 07:09:55 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 41184906 for ; Sun, 3 May 2015 07:09:55 +0000 (UTC) Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 015091B33 for ; Sun, 3 May 2015 07:09:55 +0000 (UTC) Received: by oica37 with SMTP id a37so93917532oic.0 for ; Sun, 03 May 2015 00:09:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=eNg11puqHdhPuldtpK9EsWTUCLCZ8uYpwafuw70+EhQ=; b=U6uboGoQ66cj0zbnUvWVtagiPcLiuf9LKb6XAa5IS8ok7szU/8cfRQagy+Ou9ZQlR+ xhvmZpDctKbGLororv+Unn5s3TjwgG+f6+xpyFDdhRNLR3X567Hlt+VyUUiSH89miXnX 9VitTSvFwGbz2VisDPqghkDoqwzLHHvIJ0NOzYJJ5329/ikjnW3vSWxJE+xqpImlVdbV eHt6Jkbe4jqjVJAqGZ0EOejxevQxWs8rKcfRVxXGWxyK1Da3wRXKeDDAFnRdaz45DJ9S YrjQFhJpxvfXVdr5Tm9A18IFCHdlJa9ElDqnHYiRlGWQEKMiQJGIFPCFbL6VR6W/L+8p 4Ikg== X-Received: by 10.182.27.103 with SMTP id s7mr8990968obg.2.1430636993705; Sun, 03 May 2015 00:09:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.87.198 with HTTP; Sun, 3 May 2015 00:09:33 -0700 (PDT) In-Reply-To: References: <9C799778-79DC-4D5F-BA5C-EA94A573ED10@freebsdbrasil.com.br> From: Raimundo Santos Date: Sun, 3 May 2015 04:09:33 -0300 Message-ID: Subject: Fwd: netmap-ipfw on em0 em1 To: "freebsd-net@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 May 2015 07:09:55 -0000 Clarifying things for the sake of documentation: To use the host stack, append a ^ character after the name of the interface you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) Examples: "kipfw em0" does nothing useful. "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., there are no host communications. "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the netmap-ipfw rules between the NIC and the host stack entry point associated (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) with the same NIC. On 10 November 2014 at 18:29, Evandro Nunes wrote: > dear professor luigi, > i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU and > system using the rest, this system is a 8core at 2.4Ghz, but only one core > is in use > in this next round of tests, my NIC is now an avoton with igb(4) driver, > currently with 4 queues per NIC (total 8 queues for kipfw bridge) > i have read in your papers we should expect something similar to 1.48Mpps > how can I benefit from the other CPUs which are completely idle? I tried > CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw so > I could not set one CPU to userland while other for system > All the papers talk about *generating* lots of packets, not *processing* lots of packets. What this netmap example does is processing. If someone really wants to use the host stack, the expected performance WILL BE worse - what's the point of using a host stack bypassing tool/framework if someone will end up using the host stack? And by generating, usually the papers means: minimum sized UDP packets. > > can you please enlighten? > For everyone: read the manuals, read related and indicated materials (papers, web sites, etc), and, as a least resource, read the code. Within netmap's codes, it's more easy than it sounds. From owner-freebsd-net@FreeBSD.ORG Sun May 3 16:22:47 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5F6D2B48 for ; Sun, 3 May 2015 16:22:47 +0000 (UTC) Received: from nm49-vm8.bullet.mail.ne1.yahoo.com (nm49-vm8.bullet.mail.ne1.yahoo.com [98.138.121.136]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 27D321DB1 for ; Sun, 3 May 2015 16:22:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1430670010; bh=7U5yG9bwwuZ1LEF3Gw41Nk9JVrnXSJR924g7OmcAEOM=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From:Subject; b=Vxi4M1JRy+vEc4yFEbu7DnrmHl7finecpnMBUCEZQnVnpEggrazGF9mBJfnt+8XZC3t1DwBIkUj05talI0SbNED87xliR5drG7bj4mHWN3RzTxUCZKX+jSQxecQGiXrYFwd6/Ukyxt6EE3LJYsKUvdXZKc6nzA3P3mvl/b+03+1hIEW7TLKMXSLQYySSVMy17BQYQFjU6rP28K5mQ3fRpLOY32/YrSCwl0HrGWEVMrPfJd1s5GlOr8D+oCUmDOW3xt6OOn/rpTTU+UYvbSDbpRphgUbT6LrK35V8KUuQ9I0y4BsDng4FrJi5i0SCusP936FwuXLf6w4TBLh1kigzfg== Received: from [127.0.0.1] by nm49.bullet.mail.ne1.yahoo.com with NNFMP; 03 May 2015 16:20:10 -0000 Received: from [98.138.100.102] by nm49.bullet.mail.ne1.yahoo.com with NNFMP; 03 May 2015 16:17:30 -0000 Received: from [98.138.89.170] by tm101.bullet.mail.ne1.yahoo.com with NNFMP; 03 May 2015 16:17:30 -0000 Received: from [127.0.0.1] by omp1026.mail.ne1.yahoo.com with NNFMP; 03 May 2015 16:17:30 -0000 X-Yahoo-Newman-Property: ymail-4 X-Yahoo-Newman-Id: 471016.26845.bm@omp1026.mail.ne1.yahoo.com X-YMail-OSG: LgL_3O8VM1lV6DUKVvjnd77DMft15uQhXv_OlqcXK9cvwCL6lbCIknbYNeBjdCz YV1FbzfJ7BompZNgpHxVbtJp7KOzkEH4URKUj4mTxzeQq4X06XMJy2eI1E3.kT9zudLxZdnUuVDE Z3fqzq6hFE8gXu.DnHpZ3SpfGfN8QfIgMMt34bQ5w1wbl4r3Gb9HEcPhwHYeWrn4vT5VY0L67i1q ZmY58VI9Anfx7jihOitvSTInyg4j4sKBNsMDGkBLqCmkh3FoT1CR0Yiq68Z3HGyaXTtHlfZ6O309 jkpXVwTR.h6iOvSWSMqJUQOfkJ8m80mbwF._nSF66oL8kNXI3jss1YieB7XqNpI1vUwfj4K9uOdr XEOi5SgVAds7FKmCVb.0aogiXZwzWqhB9yDhFq91aocXCdk7JqjLgeUyPxr9DilWWzpz6VFF6aR0 nvVKmQIF7m.UQcrtQ9mGqA366dVGRXzoUL01OsFXiEF2_7K992qWZWBQy6jWCzp_I35oi9QX0o.M 0x7Ym2tONbfAFoi.lX.wX6O50vw-- Received: by 98.138.101.177; Sun, 03 May 2015 16:17:30 +0000 Date: Sun, 3 May 2015 16:17:29 +0000 (UTC) From: Barney Cordoba Reply-To: Barney Cordoba To: "freebsd-net@freebsd.org" Message-ID: <1574363412.546978.1430669849590.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: References: Subject: Re: Fwd: netmap-ipfw on em0 em1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 May 2015 16:22:47 -0000 Frankly I'm baffled by netmap. You can easily write a loadable kernel module that moves packets from 1 interface to another and hook in the firewall; why would you want to bring them up into user space? It's 1000s of lines of unnecessary code. On Sunday, May 3, 2015 3:10 AM, Raimundo Santos wrote: Clarifying things for the sake of documentation: To use the host stack, append a ^ character after the name of the interface you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) Examples: "kipfw em0" does nothing useful. "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., there are no host communications. "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the netmap-ipfw rules between the NIC and the host stack entry point associated (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) with the same NIC. On 10 November 2014 at 18:29, Evandro Nunes wrote: > dear professor luigi, > i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU and > system using the rest, this system is a 8core at 2.4Ghz, but only one core > is in use > in this next round of tests, my NIC is now an avoton with igb(4) driver, > currently with 4 queues per NIC (total 8 queues for kipfw bridge) > i have read in your papers we should expect something similar to 1.48Mpps > how can I benefit from the other CPUs which are completely idle? I tried > CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw so > I could not set one CPU to userland while other for system > All the papers talk about *generating* lots of packets, not *processing* lots of packets. What this netmap example does is processing. If someone really wants to use the host stack, the expected performance WILL BE worse - what's the point of using a host stack bypassing tool/framework if someone will end up using the host stack? And by generating, usually the papers means: minimum sized UDP packets. > > can you please enlighten? > For everyone: read the manuals, read related and indicated materials (papers, web sites, etc), and, as a least resource, read the code. Within netmap's codes, it's more easy than it sounds. _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Sun May 3 18:12:47 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EC670FB for ; Sun, 3 May 2015 18:12:47 +0000 (UTC) Received: from mail-lb0-x233.google.com (mail-lb0-x233.google.com [IPv6:2a00:1450:4010:c04::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6B416183D for ; Sun, 3 May 2015 18:12:47 +0000 (UTC) Received: by lbcga7 with SMTP id ga7so92199301lbc.1 for ; Sun, 03 May 2015 11:12:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=QnZLu/vmoOZH6lfYm0ZZ5pswS4hgsG6nD+fS97F93oA=; b=wOt58lktK7OvFmOmc9gJed/Pmy6nEAw3craUf1h9elEAuvOxCHGbzGr0S6O40LmzwA FwD8FsvABQF1gDnbr/FvhlJSTEKUJ+UUvpzIx/qufqmg6PECIwaKo0AjtYnVXFXcwx3o aEXE80+aNnQfK6sFdd4V/E4nz+nSkChq9cMeK54ZFUvuv0pPklNVJsGHBhXXuSsb88JZ +iLSktORaXWOvsUQlBkK9HLiu/dhb6vNjde/HGsqPGzs/cvI401CEFq8QVfCk2H/TB+r V9YzTwMxCAWdEVbrWbaYx1wEqUtkNlJ6Q/3rrcUFJu9wR3wQ3kqumqfkdnqTGXsIZ7iu tAiA== MIME-Version: 1.0 X-Received: by 10.153.5.8 with SMTP id ci8mr16667014lad.62.1430676764220; Sun, 03 May 2015 11:12:44 -0700 (PDT) Sender: rizzo.unipi@gmail.com Received: by 10.114.20.232 with HTTP; Sun, 3 May 2015 11:12:44 -0700 (PDT) In-Reply-To: <1574363412.546978.1430669849590.JavaMail.yahoo@mail.yahoo.com> References: <1574363412.546978.1430669849590.JavaMail.yahoo@mail.yahoo.com> Date: Sun, 3 May 2015 20:12:44 +0200 X-Google-Sender-Auth: elXQjBvjZ12dS6_p3WLJzLOw_Mw Message-ID: Subject: Re: Fwd: netmap-ipfw on em0 em1 From: Luigi Rizzo To: Barney Cordoba Cc: "freebsd-net@freebsd.org" Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 May 2015 18:12:48 -0000 On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < freebsd-net@freebsd.org> wrote: > Frankly I'm baffled by netmap. You can easily write a loadable kernel > module that moves packets from 1 interface to another and hook in the > firewall; why would you want to bring them up into user space? It's 1000s > of lines of unnecessary code. > > Because it is much faster. The motivation for netmap-like solutions (that includes Intel's DPDK, PF_RING/DNA and several proprietary implementations) is speed: they bypass the entire network stack, and a good part of the device drivers, so you can access packets 10+ times faster. So things are actually the other way around: the 1000's of unnecessary lines of code (not really thousands, though) are those that you'd pay going through the standard network stack when you don't need any of its services. Going to userspace is just a side effect -- turns out to be easier to develop and run your packet processing code in userspace, but there are netmap clients (e.g. the VALE software switch) which run entirely in the kernel. cheers luigi > > > On Sunday, May 3, 2015 3:10 AM, Raimundo Santos > wrote: > > > Clarifying things for the sake of documentation: > > To use the host stack, append a ^ character after the name of the interface > you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) > > Examples: > > "kipfw em0" does nothing useful. > "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., > there are no host communications. > "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the > netmap-ipfw rules between the NIC and the host stack entry point associated > (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) > with the same NIC. > > On 10 November 2014 at 18:29, Evandro Nunes > wrote: > > > dear professor luigi, > > i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU > and > > system using the rest, this system is a 8core at 2.4Ghz, but only one > core > > is in use > > in this next round of tests, my NIC is now an avoton with igb(4) driver, > > currently with 4 queues per NIC (total 8 queues for kipfw bridge) > > i have read in your papers we should expect something similar to 1.48Mpps > > how can I benefit from the other CPUs which are completely idle? I tried > > CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw > so > > I could not set one CPU to userland while other for system > > > > All the papers talk about *generating* lots of packets, not *processing* > lots of packets. What this netmap example does is processing. If someone > really wants to use the host stack, the expected performance WILL BE worse > - what's the point of using a host stack bypassing tool/framework if > someone will end up using the host stack? > > And by generating, usually the papers means: minimum sized UDP packets. > > > > > > can you please enlighten? > > > > For everyone: read the manuals, read related and indicated materials > (papers, web sites, etc), and, as a least resource, read the code. Within > netmap's codes, it's more easy than it sounds. > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > -- -----------------------------------------+------------------------------- Prof. Luigi RIZZO, rizzo@iet.unipi.it . Dip. di Ing. dell'Informazione http://www.iet.unipi.it/~luigi/ . Universita` di Pisa TEL +39-050-2217533 . via Diotisalvi 2 Mobile +39-338-6809875 . 56122 PISA (Italy) -----------------------------------------+------------------------------- From owner-freebsd-net@FreeBSD.ORG Sun May 3 19:13:27 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 48EF39E9 for ; Sun, 3 May 2015 19:13:27 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 33AF51DCE for ; Sun, 3 May 2015 19:13:27 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t43JDRBQ003745 for ; Sun, 3 May 2015 19:13:27 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199174] em tx and rx hang Date: Sun, 03 May 2015 19:13:26 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: sbruno@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 May 2015 19:13:27 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199174 --- Comment #11 from Sean Bruno --- Did a couple of tests via iperf. test 1 #1 set hw.em.txd="4096" #2 set hw.em.rxd="4096" #3 ran with TSO enabled -- ran into hangs and debug output from watchdog as reporter and stated. -- seems to happen less frequently, once in 24 hour test test 2 #1 setup as test 1 #2 disable TSO (ifconfig em0 -tso) -- no hangs in 24 hours test test 3 #1 set hw.em.txd="256" #2 set hw.em.rxd="256" #3 reboot and leave TSO enabled -- ran into hangs and debug out from watchdog in minutes Hypothesis: -- TSO implementation isn't taking into consideration ring wrap events? -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Sun May 3 21:00:09 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 37DD217D for ; Sun, 3 May 2015 21:00:09 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0FDB31A48 for ; Sun, 3 May 2015 21:00:09 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t43L08Jv062715 for ; Sun, 3 May 2015 21:00:08 GMT (envelope-from bugzilla-noreply@FreeBSD.org) Message-Id: <201505032100.t43L08Jv062715@kenobi.freebsd.org> From: bugzilla-noreply@FreeBSD.org To: freebsd-net@FreeBSD.org Subject: Problem reports for freebsd-net@FreeBSD.org that need special attention X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 Date: Sun, 03 May 2015 21:00:08 +0000 Content-Type: text/plain; charset="UTF-8" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 May 2015 21:00:09 -0000 To view an individual PR, use: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=(Bug Id). The following is a listing of current problems submitted by FreeBSD users, which need special attention. These represent problem reports covering all versions including experimental development code and obsolete releases. Status | Bug Id | Description ------------+-----------+--------------------------------------------------- New | 197535 | [re] [panic] if_re (Realtek 8168) causes memory w Open | 199136 | [if_tap] Added down_on_close sysctl variable to t 2 problems total for which you should take action. From owner-freebsd-net@FreeBSD.ORG Sun May 3 21:00:10 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A4C75183 for ; Sun, 3 May 2015 21:00:10 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8F5D81A4D for ; Sun, 3 May 2015 21:00:10 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t43L0AaC062969 for ; Sun, 3 May 2015 21:00:10 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 193743] [re] RTL8111/8168B PCI Express Gigabit Ethernet controller: doesn't work properly, problems getting UP automatically Date: Sun, 03 May 2015 21:00:10 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: sbruno@FreeBSD.org X-Bugzilla-Status: Closed X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc bug_status resolution Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 May 2015 21:00:10 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193743 Sean Bruno changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sbruno@FreeBSD.org Status|New |Closed Resolution|--- |FIXED --- Comment #4 from Sean Bruno --- This has been committed. -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Mon May 4 03:38:53 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 9806E2FE for ; Mon, 4 May 2015 03:38:53 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8214B1152 for ; Mon, 4 May 2015 03:38:53 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t443crxc032529 for ; Mon, 4 May 2015 03:38:53 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 156667] [em] em0 fails to init on CURRENT after March 17 Date: Mon, 04 May 2015 03:38:53 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 9.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: marcus@blazingdot.com X-Bugzilla-Status: Closed X-Bugzilla-Priority: Normal X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: resolution bug_status Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 03:38:53 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=156667 marcus@blazingdot.com changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|In Progress |Closed -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Mon May 4 09:34:14 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C960FE83 for ; Mon, 4 May 2015 09:34:14 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A1C9A15C8 for ; Mon, 4 May 2015 09:34:14 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [127.0.1.5]) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9) with ESMTP id t449YE5k049832 for ; Mon, 4 May 2015 09:34:14 GMT (envelope-from daemon-user@phabric-backend.isc.freebsd.org) Received: (from daemon-user@localhost) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9/Submit) id t449YEjX049831; Mon, 4 May 2015 09:34:14 GMT (envelope-from daemon-user) Date: Mon, 4 May 2015 09:34:14 +0000 To: freebsd-net@freebsd.org From: "hselasky (Hans Petter Selasky)" Subject: [Differential] [Closed] D1438: FreeBSD callout rewrite and cleanup Message-ID: X-Priority: 3 Thread-Topic: D1438: FreeBSD callout rewrite / cleanup X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: In-Reply-To: References: Thread-Index: YzU3ODk0MGM0Y2E4NmE3NjY4YjJlZmFkM2UyIFVHPRY= Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_a17c2070cbe9bbfcdf7c7bdb3c763fdd" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 09:34:15 -0000 --b1_a17c2070cbe9bbfcdf7c7bdb3c763fdd Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS282414: Major callout subsystem cleanup and rewrite: (authored by hselasky). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D1438?vs=4870&id=5170#toc REPOSITORY rS FreeBSD src repository REVISION DETAIL https://reviews.freebsd.org/D1438 AFFECTED FILES projects/hps_head/share/man/man9/Makefile projects/hps_head/share/man/man9/timeout.9 projects/hps_head/sys/kern/init_main.c projects/hps_head/sys/kern/kern_clocksource.c projects/hps_head/sys/kern/kern_condvar.c projects/hps_head/sys/kern/kern_lock.c projects/hps_head/sys/kern/kern_switch.c projects/hps_head/sys/kern/kern_synch.c projects/hps_head/sys/kern/kern_thread.c projects/hps_head/sys/kern/kern_timeout.c projects/hps_head/sys/kern/subr_sleepqueue.c projects/hps_head/sys/ofed/include/linux/completion.h projects/hps_head/sys/ofed/include/linux/linux_compat.c projects/hps_head/sys/sys/_callout.h projects/hps_head/sys/sys/callout.h projects/hps_head/sys/sys/proc.h EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: hselasky, jhb, adrian, markj, emaste, sbruno, imp, lstewart, rwatson, gnn, rrs, kostikbel, delphij, neel, erj Cc: avg, jch, wblock, freebsd-net --b1_a17c2070cbe9bbfcdf7c7bdb3c763fdd Content-Type: text/x-patch; charset=utf-8; name="D1438.5170.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D1438.5170.patch" ZGlmZiAtLWdpdCBhL3Byb2plY3RzL2hwc19oZWFkL3N5cy9zeXMvY2FsbG91dC5oIGIvcHJvamVj dHMvaHBzX2hlYWQvc3lzL3N5cy9jYWxsb3V0LmgKLS0tIGEvcHJvamVjdHMvaHBzX2hlYWQvc3lz L3N5cy9jYWxsb3V0LmgKKysrIGIvcHJvamVjdHMvaHBzX2hlYWQvc3lzL3N5cy9jYWxsb3V0LmgK QEAgLTQ1LDEwICs0NSwxMiBAQAogI2RlZmluZQlDQUxMT1VUX1BFTkRJTkcJCTB4MDAwNCAvKiBj YWxsb3V0IGlzIHdhaXRpbmcgZm9yIHRpbWVvdXQgKi8KICNkZWZpbmUJQ0FMTE9VVF9NUFNBRkUJ CTB4MDAwOCAvKiBjYWxsb3V0IGhhbmRsZXIgaXMgbXAgc2FmZSAqLwogI2RlZmluZQlDQUxMT1VU X1JFVFVSTlVOTE9DS0VECTB4MDAxMCAvKiBoYW5kbGVyIHJldHVybnMgd2l0aCBtdHggdW5sb2Nr ZWQgKi8KLSNkZWZpbmUJQ0FMTE9VVF9TSEFSRURMT0NLCTB4MDAyMCAvKiBjYWxsb3V0IGxvY2sg aGVsZCBpbiBzaGFyZWQgbW9kZSAqLwotI2RlZmluZQlDQUxMT1VUX0RGUk1JR1JBVElPTgkweDAw NDAgLyogY2FsbG91dCBpbiBkZWZlcnJlZCBtaWdyYXRpb24gbW9kZSAqLworI2RlZmluZQlDQUxM T1VUX1VOVVNFRF81CTB4MDAyMCAvKiAtLWF2YWlsYWJsZS0tICovCisjZGVmaW5lCUNBTExPVVRf REVGUkVTVEFSVAkweDAwNDAgLyogY2FsbG91dCByZXN0YXJ0IGlzIGRlZmVycmVkICovCiAjZGVm aW5lCUNBTExPVVRfUFJPQ0VTU0VECTB4MDA4MCAvKiBjYWxsb3V0IGluIHdoZWVsIG9yIHByb2Nl c3NpbmcgbGlzdD8gKi8KICNkZWZpbmUJQ0FMTE9VVF9ESVJFQ1QgCQkweDAxMDAgLyogYWxsb3cg ZXhlYyBmcm9tIGh3IGludCBjb250ZXh0ICovCisjZGVmaW5lCUNBTExPVVRfU0VUX0xDKHgpCSgo KHgpICYgNykgPDwgMTYpIC8qIHNldCBsb2NrIGNsYXNzICovCisjZGVmaW5lCUNBTExPVVRfR0VU X0xDKHgpCSgoKHgpID4+IDE2KSAmIDcpIC8qIGdldCBsb2NrIGNsYXNzICovCiAKICNkZWZpbmUJ Q19ESVJFQ1RfRVhFQwkJMHgwMDAxIC8qIGRpcmVjdCBleGVjdXRpb24gb2YgY2FsbG91dCAqLwog I2RlZmluZQlDX1BSRUxCSVRTCQk3CkBAIC02MywyNSArNjUsMTAgQEAKIH07CiAKICNpZmRlZiBf S0VSTkVMCi0vKiAKLSAqIE5vdGUgdGhlIGZsYWdzIGZpZWxkIGlzIGFjdHVhbGx5ICp0d28qIGZp ZWxkcy4gVGhlIGNfZmxhZ3MKLSAqIGZpZWxkIGlzIHRoZSBvbmUgdGhhdCBjYWxsZXIgb3BlcmF0 aW9ucyB0aGF0IG1heSwgb3IgbWF5IG5vdCBoYXZlCi0gKiBhIGxvY2sgdG91Y2hlcyBpLmUuIGNh bGxvdXRfZGVhY3RpdmF0ZSgpLiBUaGUgb3RoZXIsIHRoZSBjX2lmbGFncywKLSAqIGlzIHRoZSBp bnRlcm5hbCBmbGFncyB0aGF0ICptdXN0KiBiZSBrZXB0IGNvcnJlY3Qgb24gd2hpY2ggdGhlCi0g KiBjYWxsb3V0IHN5c3RlbSBkZXBlbmQgb24gZS5nLiBjYWxsb3V0X3BlbmRpbmcoKS4KLSAqIFRo ZSBjX2lmbGFnIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgY2FsbG91dCBzeXN0ZW0gdG8gZGV0 ZXJtaW5lIHdoaWNoCi0gKiBsaXN0IHRoZSBjYWxsb3V0IGlzIG9uIGFuZCB0cmFjayBpbnRlcm5h bCBzdGF0ZS4gQ2FsbGVycyAqc2hvdWxkIG5vdCogCi0gKiB1c2UgdGhlIGNfZmxhZ3MgZmllbGQg ZGlyZWN0bHkgYnV0IHNob3VsZCB1c2UgdGhlIG1hY3JvcyBwcm92aWRlZC4KLSAqICAKLSAqIFRo ZSBjX2lmbGFncyBmaWVsZCBob2xkcyBpbnRlcm5hbCBmbGFncyB0aGF0IGFyZSBwcm90ZWN0ZWQg YnkgaW50ZXJuYWwKLSAqIGxvY2tzIG9mIHRoZSBjYWxsb3V0IHN1YnN5c3RlbS4gIFRoZSBjX2Zs YWdzIGZpZWxkIGhvbGRzIGV4dGVybmFsIGZsYWdzLgotICogVGhlIGNhbGxlciBtdXN0IGhvbGQg aXRzIG93biBsb2NrIHdoaWxlIG1hbmlwdWxhdGluZyBvciByZWFkaW5nIGV4dGVybmFsCi0gKiBm bGFncyB2aWEgY2FsbG91dF9hY3RpdmUoKSwgY2FsbG91dF9kZWFjdGl2YXRlKCksIGNhbGxvdXRf cmVzZXQqKCksIG9yCi0gKiBjYWxsb3V0X3N0b3AoKSB0byBhdm9pZCByYWNlcy4KLSAqLwogI2Rl ZmluZQljYWxsb3V0X2FjdGl2ZShjKQkoKGMpLT5jX2ZsYWdzICYgQ0FMTE9VVF9BQ1RJVkUpCiAj ZGVmaW5lCWNhbGxvdXRfZGVhY3RpdmF0ZShjKQkoKGMpLT5jX2ZsYWdzICY9IH5DQUxMT1VUX0FD VElWRSkKLSNkZWZpbmUJY2FsbG91dF9kcmFpbihjKQlfY2FsbG91dF9zdG9wX3NhZmUoYywgMSkK K2ludAljYWxsb3V0X2RyYWluKHN0cnVjdCBjYWxsb3V0ICopOworaW50CWNhbGxvdXRfZHJhaW5f YXN5bmMoc3RydWN0IGNhbGxvdXQgKiwgY2FsbG91dF9mdW5jX3QgKiwgdm9pZCAqKTsKIHZvaWQJ Y2FsbG91dF9pbml0KHN0cnVjdCBjYWxsb3V0ICosIGludCk7CiB2b2lkCV9jYWxsb3V0X2luaXRf bG9jayhzdHJ1Y3QgY2FsbG91dCAqLCBzdHJ1Y3QgbG9ja19vYmplY3QgKiwgaW50KTsKICNkZWZp bmUJY2FsbG91dF9pbml0X210eChjLCBtdHgsIGZsYWdzKQkJCQkJXApAQCAtOTMsOSArODAsOSBA QAogI2RlZmluZQljYWxsb3V0X2luaXRfcncoYywgcncsIGZsYWdzKQkJCQkJXAogCV9jYWxsb3V0 X2luaXRfbG9jaygoYyksICgocncpICE9IE5VTEwpID8gJihydyktPmxvY2tfb2JqZWN0IDoJXAog CSAgIE5VTEwsIChmbGFncykpCi0jZGVmaW5lCWNhbGxvdXRfcGVuZGluZyhjKQkoKGMpLT5jX2lm bGFncyAmIENBTExPVVRfUEVORElORykKKyNkZWZpbmUJY2FsbG91dF9wZW5kaW5nKGMpCSgoYykt PmNfZmxhZ3MgJiBDQUxMT1VUX1BFTkRJTkcpCiBpbnQJY2FsbG91dF9yZXNldF9zYnRfb24oc3Ry dWN0IGNhbGxvdXQgKiwgc2JpbnRpbWVfdCwgc2JpbnRpbWVfdCwKLQkgICAgdm9pZCAoKikodm9p ZCAqKSwgdm9pZCAqLCBpbnQsIGludCk7CisJICAgIGNhbGxvdXRfZnVuY190ICosIHZvaWQgKiwg aW50LCBpbnQpOwogI2RlZmluZQljYWxsb3V0X3Jlc2V0X3NidChjLCBzYnQsIHByLCBmbiwgYXJn LCBmbGFncykJCQlcCiAgICAgY2FsbG91dF9yZXNldF9zYnRfb24oKGMpLCAoc2J0KSwgKHByKSwg KGZuKSwgKGFyZyksIC0xLCAoZmxhZ3MpKQogI2RlZmluZQljYWxsb3V0X3Jlc2V0X3NidF9jdXJj cHUoYywgc2J0LCBwciwgZm4sIGFyZywgZmxhZ3MpCQlcCkBAIC0xMTksOCArMTA2LDcgQEAKIGlu dAljYWxsb3V0X3NjaGVkdWxlX29uKHN0cnVjdCBjYWxsb3V0ICosIGludCwgaW50KTsKICNkZWZp bmUJY2FsbG91dF9zY2hlZHVsZV9jdXJjcHUoYywgb25fdGljaykJCQkJXAogICAgIGNhbGxvdXRf c2NoZWR1bGVfb24oKGMpLCAob25fdGljayksIFBDUFVfR0VUKGNwdWlkKSkKLSNkZWZpbmUJY2Fs bG91dF9zdG9wKGMpCQlfY2FsbG91dF9zdG9wX3NhZmUoYywgMCkKLWludAlfY2FsbG91dF9zdG9w X3NhZmUoc3RydWN0IGNhbGxvdXQgKiwgaW50KTsKK2ludAljYWxsb3V0X3N0b3Aoc3RydWN0IGNh bGxvdXQgKik7CiB2b2lkCWNhbGxvdXRfcHJvY2VzcyhzYmludGltZV90IG5vdyk7CiAKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvaHBzX2hlYWQvc3lzL3N5cy9fY2FsbG91dC5oIGIvcHJv amVjdHMvaHBzX2hlYWQvc3lzL3N5cy9fY2FsbG91dC5oCi0tLSBhL3Byb2plY3RzL2hwc19oZWFk L3N5cy9zeXMvX2NhbGxvdXQuaAorKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMvc3lzL19jYWxs b3V0LmgKQEAgLTQ2LDYgKzQ2LDggQEAKIFNMSVNUX0hFQUQoY2FsbG91dF9zbGlzdCwgY2FsbG91 dCk7CiBUQUlMUV9IRUFEKGNhbGxvdXRfdGFpbHEsIGNhbGxvdXQpOwogCit0eXBlZGVmIHZvaWQg Y2FsbG91dF9mdW5jX3Qodm9pZCAqKTsKKwogc3RydWN0IGNhbGxvdXQgewogCXVuaW9uIHsKIAkJ TElTVF9FTlRSWShjYWxsb3V0KSBsZTsKQEAgLTU1LDEwICs1Nyw5IEBACiAJc2JpbnRpbWVfdCBj X3RpbWU7CQkJLyogdGlja3MgdG8gdGhlIGV2ZW50ICovCiAJc2JpbnRpbWVfdCBjX3ByZWNpc2lv bjsJCQkvKiBkZWx0YSBhbGxvd2VkIHdydCBvcHQgKi8KIAl2b2lkCSpjX2FyZzsJCQkJLyogZnVu Y3Rpb24gYXJndW1lbnQgKi8KLQl2b2lkCSgqY19mdW5jKSh2b2lkICopOwkJLyogZnVuY3Rpb24g dG8gY2FsbCAqLworCWNhbGxvdXRfZnVuY190ICpjX2Z1bmM7CQkJLyogZnVuY3Rpb24gdG8gY2Fs bCAqLwogCXN0cnVjdCBsb2NrX29iamVjdCAqY19sb2NrOwkJLyogbG9jayB0byBoYW5kbGUgKi8K LQlzaG9ydAljX2ZsYWdzOwkJCS8qIFVzZXIgU3RhdGUgKi8KLQlzaG9ydAljX2lmbGFnczsJCQkv KiBJbnRlcm5hbCBTdGF0ZSAqLworCWludAljX2ZsYWdzOwkJCS8qIHN0YXRlIG9mIHRoaXMgZW50 cnkgKi8KIAl2b2xhdGlsZSBpbnQgY19jcHU7CQkJLyogQ1BVIHdlJ3JlIHNjaGVkdWxlZCBvbiAq LwogfTsKIApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvaHBzX2hlYWQvc3lzL3N5cy9wcm9jLmggYi9w cm9qZWN0cy9ocHNfaGVhZC9zeXMvc3lzL3Byb2MuaAotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9z eXMvc3lzL3Byb2MuaAorKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMvc3lzL3Byb2MuaApAQCAt MzA4LDYgKzMwOCw3IEBACiAJfSB0ZF91cmV0b2ZmOwkJCS8qIChrKSBTeXNjYWxsIGF1eCByZXR1 cm5zLiAqLwogI2RlZmluZSB0ZF9yZXR2YWwJdGRfdXJldG9mZi50ZHVfcmV0dmFsCiAJc3RydWN0 IGNhbGxvdXQJdGRfc2xwY2FsbG91dDsJLyogKGgpIENhbGxvdXQgZm9yIHNsZWVwLiAqLworCXN0 cnVjdCBtdHgJdGRfc2xwbXV0ZXg7CS8qIChoKSBNdXRleCBmb3Igc2xlZXAgY2FsbG91dCAqLwog CXN0cnVjdCB0cmFwZnJhbWUgKnRkX2ZyYW1lOwkvKiAoaykgKi8KIAlzdHJ1Y3Qgdm1fb2JqZWN0 ICp0ZF9rc3RhY2tfb2JqOy8qIChhKSBLc3RhY2sgb2JqZWN0LiAqLwogCXZtX29mZnNldF90CXRk X2tzdGFjazsJLyogKGEpIEtlcm5lbCBWQSBvZiBrc3RhY2suICovCkBAIC0zNjQsNyArMzY1LDcg QEAKICNkZWZpbmUJVERGX0FMTFBST0NTVVNQCTB4MDAwMDAyMDAgLyogc3VzcGVuZGVkIGJ5IFNJ TkdMRV9BTExQUk9DICovCiAjZGVmaW5lCVRERl9CT1VOREFSWQkweDAwMDAwNDAwIC8qIFRocmVh ZCBzdXNwZW5kZWQgYXQgdXNlciBib3VuZGFyeSAqLwogI2RlZmluZQlUREZfQVNUUEVORElORwkw eDAwMDAwODAwIC8qIFRocmVhZCBoYXMgc29tZSBhc3luY2hyb25vdXMgZXZlbnRzLiAqLwotI2Rl ZmluZQlUREZfVElNT0ZBSUwJMHgwMDAwMTAwMCAvKiBUaW1lb3V0IGZyb20gc2xlZXAgYWZ0ZXIg d2Ugd2VyZSBhd2FrZS4gKi8KKyNkZWZpbmUJVERGX1VOVVNFRDEyCTB4MDAwMDEwMDAgLyogLS1h dmFpbGFibGUtLSAqLwogI2RlZmluZQlUREZfU0JEUlkJMHgwMDAwMjAwMCAvKiBTdG9wIG9ubHkg b24gdXNlcm1vZGUgYm91bmRhcnkuICovCiAjZGVmaW5lCVRERl9VUElCTE9DS0VECTB4MDAwMDQw MDAgLyogVGhyZWFkIGJsb2NrZWQgb24gdXNlciBQSSBtdXRleC4gKi8KICNkZWZpbmUJVERGX05F RURTVVNQQ0hLCTB4MDAwMDgwMDAgLyogVGhyZWFkIG1heSBuZWVkIHRvIHN1c3BlbmQuICovCkBA IC03MDYsNyArNzA3LDcgQEAKICNkZWZpbmUJU1dUX09XRVBSRUVNUFQJCTIJLyogU3dpdGNoaW5n IGR1ZSB0byBvcGVwcmVlbXB0LiAqLwogI2RlZmluZQlTV1RfVFVSTlNUSUxFCQkzCS8qIFR1cm5z dGlsZSBjb250ZW50aW9uLiAqLwogI2RlZmluZQlTV1RfU0xFRVBRCQk0CS8qIFNsZWVwcSB3YWl0 LiAqLwotI2RlZmluZQlTV1RfU0xFRVBRVElNTwkJNQkvKiBTbGVlcHEgdGltZW91dCB3YWl0LiAq LworI2RlZmluZQlTV1RfVU5VU0VENQkJNQkvKiAtLWF2YWlsYWJsZS0tICovCiAjZGVmaW5lCVNX VF9SRUxJTlFVSVNICQk2CS8qIHlpZWxkIGNhbGwuICovCiAjZGVmaW5lCVNXVF9ORUVEUkVTQ0hF RAkJNwkvKiBORUVEUkVTQ0hFRCB3YXMgc2V0LiAqLwogI2RlZmluZQlTV1RfSURMRQkJOAkvKiBT d2l0Y2hpbmcgZnJvbSB0aGUgaWRsZSB0aHJlYWQuICovCmRpZmYgLS1naXQgYS9wcm9qZWN0cy9o cHNfaGVhZC9zeXMvb2ZlZC9pbmNsdWRlL2xpbnV4L2NvbXBsZXRpb24uaCBiL3Byb2plY3RzL2hw c19oZWFkL3N5cy9vZmVkL2luY2x1ZGUvbGludXgvY29tcGxldGlvbi5oCi0tLSBhL3Byb2plY3Rz L2hwc19oZWFkL3N5cy9vZmVkL2luY2x1ZGUvbGludXgvY29tcGxldGlvbi5oCisrKyBiL3Byb2pl Y3RzL2hwc19oZWFkL3N5cy9vZmVkL2luY2x1ZGUvbGludXgvY29tcGxldGlvbi5oCkBAIC02NCwz ICs2NCw0IEBACiBleHRlcm4gaW50IGxpbnV4X2NvbXBsZXRpb25fZG9uZShzdHJ1Y3QgY29tcGxl dGlvbiAqKTsKIAogI2VuZGlmCQkJCQkvKiBfTElOVVhfQ09NUExFVElPTl9IXyAqLworCmRpZmYg LS1naXQgYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMvb2ZlZC9pbmNsdWRlL2xpbnV4L2xpbnV4X2Nv bXBhdC5jIGIvcHJvamVjdHMvaHBzX2hlYWQvc3lzL29mZWQvaW5jbHVkZS9saW51eC9saW51eF9j b21wYXQuYwotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMvb2ZlZC9pbmNsdWRlL2xpbnV4L2xp bnV4X2NvbXBhdC5jCisrKyBiL3Byb2plY3RzL2hwc19oZWFkL3N5cy9vZmVkL2luY2x1ZGUvbGlu dXgvbGludXhfY29tcGF0LmMKQEAgLTg0Niw3ICs4NDYsOSBAQAogCQlpZiAoYy0+ZG9uZSkKIAkJ CWJyZWFrOwogCQlzbGVlcHFfYWRkKGMsIE5VTEwsICJjb21wbGV0aW9uIiwgZmxhZ3MsIDApOwor CQlzbGVlcHFfcmVsZWFzZShjKTsKIAkJc2xlZXBxX3NldF90aW1lb3V0KGMsIGxpbnV4X3RpbWVy X2ppZmZpZXNfdW50aWwoZW5kKSk7CisJCXNsZWVwcV9sb2NrKGMpOwogCQlpZiAoZmxhZ3MgJiBT TEVFUFFfSU5URVJSVVBUSUJMRSkKIAkJCXJldCA9IHNsZWVwcV90aW1lZHdhaXRfc2lnKGMsIDAp OwogCQllbHNlCmRpZmYgLS1naXQgYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9zdWJyX3Ns ZWVwcXVldWUuYyBiL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL3N1YnJfc2xlZXBxdWV1ZS5j Ci0tLSBhL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL3N1YnJfc2xlZXBxdWV1ZS5jCisrKyBi L3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL3N1YnJfc2xlZXBxdWV1ZS5jCkBAIC0xNTIsNyAr MTUyLDggQEAKICAqLwogc3RhdGljIGludAlzbGVlcHFfY2F0Y2hfc2lnbmFscyh2b2lkICp3Y2hh biwgaW50IHByaSk7CiBzdGF0aWMgaW50CXNsZWVwcV9jaGVja19zaWduYWxzKHZvaWQpOwotc3Rh dGljIGludAlzbGVlcHFfY2hlY2tfdGltZW91dCh2b2lkKTsKK3N0YXRpYyBpbnQJc2xlZXBxX2No ZWNrX3RpbWVvdXQoc3RydWN0IHRocmVhZCAqKTsKK3N0YXRpYyB2b2lkCXNsZWVwcV9zdG9wX3Rp bWVvdXQoc3RydWN0IHRocmVhZCAqKTsKICNpZmRlZiBJTlZBUklBTlRTCiBzdGF0aWMgdm9pZAlz bGVlcHFfZHRvcih2b2lkICptZW0sIGludCBzaXplLCB2b2lkICphcmcpOwogI2VuZGlmCkBAIC0z NzMsMTcgKzM3NCwxNCBAQAogc2xlZXBxX3NldF90aW1lb3V0X3NidCh2b2lkICp3Y2hhbiwgc2Jp bnRpbWVfdCBzYnQsIHNiaW50aW1lX3QgcHIsCiAgICAgaW50IGZsYWdzKQogewotCXN0cnVjdCBz bGVlcHF1ZXVlX2NoYWluICpzYzsKIAlzdHJ1Y3QgdGhyZWFkICp0ZDsKIAogCXRkID0gY3VydGhy ZWFkOwotCXNjID0gU0NfTE9PS1VQKHdjaGFuKTsKLQltdHhfYXNzZXJ0KCZzYy0+c2NfbG9jaywg TUFfT1dORUQpOwotCU1QQVNTKFREX09OX1NMRUVQUSh0ZCkpOwotCU1QQVNTKHRkLT50ZF9zbGVl cHF1ZXVlID09IE5VTEwpOwotCU1QQVNTKHdjaGFuICE9IE5VTEwpOworCisJbXR4X2xvY2tfc3Bp bigmdGQtPnRkX3NscG11dGV4KTsKIAljYWxsb3V0X3Jlc2V0X3NidF9vbigmdGQtPnRkX3NscGNh bGxvdXQsIHNidCwgcHIsCiAJICAgIHNsZWVwcV90aW1lb3V0LCB0ZCwgUENQVV9HRVQoY3B1aWQp LCBmbGFncyB8IENfRElSRUNUX0VYRUMpOworCW10eF91bmxvY2tfc3BpbigmdGQtPnRkX3NscG11 dGV4KTsKIH0KIAogLyoKQEAgLTU1OSwxMSArNTU3LDggQEAKICAqIENoZWNrIHRvIHNlZSBpZiB3 ZSB0aW1lZCBvdXQuCiAgKi8KIHN0YXRpYyBpbnQKLXNsZWVwcV9jaGVja190aW1lb3V0KHZvaWQp CitzbGVlcHFfY2hlY2tfdGltZW91dChzdHJ1Y3QgdGhyZWFkICp0ZCkKIHsKLQlzdHJ1Y3QgdGhy ZWFkICp0ZDsKLQotCXRkID0gY3VydGhyZWFkOwogCVRIUkVBRF9MT0NLX0FTU0VSVCh0ZCwgTUFf T1dORUQpOwogCiAJLyoKQEAgLTU3MywyOCArNTY4LDIxIEBACiAJCXRkLT50ZF9mbGFncyAmPSB+ VERGX1RJTUVPVVQ7CiAJCXJldHVybiAoRVdPVUxEQkxPQ0spOwogCX0KLQotCS8qCi0JICogSWYg VERGX1RJTU9GQUlMIGlzIHNldCwgdGhlIHRpbWVvdXQgcmFuIGFmdGVyIHdlIGhhZAotCSAqIGFs cmVhZHkgYmVlbiB3b2tlbiB1cC4KLQkgKi8KLQlpZiAodGQtPnRkX2ZsYWdzICYgVERGX1RJTU9G QUlMKQotCQl0ZC0+dGRfZmxhZ3MgJj0gflRERl9USU1PRkFJTDsKLQotCS8qCi0JICogSWYgY2Fs bG91dF9zdG9wKCkgZmFpbHMsIHRoZW4gdGhlIHRpbWVvdXQgaXMgcnVubmluZyBvbgotCSAqIGFu b3RoZXIgQ1BVLCBzbyBzeW5jaHJvbml6ZSB3aXRoIGl0IHRvIGF2b2lkIGhhdmluZyBpdAotCSAq IGFjY2lkZW50YWxseSB3YWtlIHVwIGEgc3Vic2VxdWVudCBzbGVlcC4KLQkgKi8KLQllbHNlIGlm IChjYWxsb3V0X3N0b3AoJnRkLT50ZF9zbHBjYWxsb3V0KSA9PSAwKSB7Ci0JCXRkLT50ZF9mbGFn cyB8PSBUREZfVElNRU9VVDsKLQkJVERfU0VUX1NMRUVQSU5HKHRkKTsKLQkJbWlfc3dpdGNoKFNX X0lOVk9MIHwgU1dUX1NMRUVQUVRJTU8sIE5VTEwpOwotCX0KIAlyZXR1cm4gKDApOwogfQogCiAv KgorICogQXRvbWljYWxseSBzdG9wIHRoZSB0aW1lb3V0IGJ5IHVzaW5nIGEgbXV0ZXguCisgKi8K K3N0YXRpYyB2b2lkCitzbGVlcHFfc3RvcF90aW1lb3V0KHN0cnVjdCB0aHJlYWQgKnRkKQorewor CW10eF9sb2NrX3NwaW4oJnRkLT50ZF9zbHBtdXRleCk7CisJY2FsbG91dF9zdG9wKCZ0ZC0+dGRf c2xwY2FsbG91dCk7CisJbXR4X3VubG9ja19zcGluKCZ0ZC0+dGRfc2xwbXV0ZXgpOworfQorCisv KgogICogQ2hlY2sgdG8gc2VlIGlmIHdlIHdlcmUgYXdva2VuIGJ5IGEgc2lnbmFsLgogICovCiBz dGF0aWMgaW50CkBAIC02NjQsOSArNjUyLDExIEBACiAJTVBBU1MoISh0ZC0+dGRfZmxhZ3MgJiBU REZfU0lOVFIpKTsKIAl0aHJlYWRfbG9jayh0ZCk7CiAJc2xlZXBxX3N3aXRjaCh3Y2hhbiwgcHJp KTsKLQlydmFsID0gc2xlZXBxX2NoZWNrX3RpbWVvdXQoKTsKKwlydmFsID0gc2xlZXBxX2NoZWNr X3RpbWVvdXQodGQpOwogCXRocmVhZF91bmxvY2sodGQpOwogCisJc2xlZXBxX3N0b3BfdGltZW91 dCh0ZCk7CisKIAlyZXR1cm4gKHJ2YWwpOwogfQogCkBAIC02NzcsMTIgKzY2NywxOCBAQAogaW50 CiBzbGVlcHFfdGltZWR3YWl0X3NpZyh2b2lkICp3Y2hhbiwgaW50IHByaSkKIHsKKwlzdHJ1Y3Qg dGhyZWFkICp0ZDsKIAlpbnQgcmNhdGNoLCBydmFsdCwgcnZhbHM7CiAKKwl0ZCA9IGN1cnRocmVh ZDsKKwogCXJjYXRjaCA9IHNsZWVwcV9jYXRjaF9zaWduYWxzKHdjaGFuLCBwcmkpOwotCXJ2YWx0 ID0gc2xlZXBxX2NoZWNrX3RpbWVvdXQoKTsKKwlydmFsdCA9IHNsZWVwcV9jaGVja190aW1lb3V0 KHRkKTsKIAlydmFscyA9IHNsZWVwcV9jaGVja19zaWduYWxzKCk7Ci0JdGhyZWFkX3VubG9jayhj dXJ0aHJlYWQpOworCXRocmVhZF91bmxvY2sodGQpOworCisJc2xlZXBxX3N0b3BfdGltZW91dCh0 ZCk7CisKIAlpZiAocmNhdGNoKQogCQlyZXR1cm4gKHJjYXRjaCk7CiAJaWYgKHJ2YWxzKQpAQCAt ODg5LDY0ICs4ODUsNDkgQEAKIHN0YXRpYyB2b2lkCiBzbGVlcHFfdGltZW91dCh2b2lkICphcmcp CiB7Ci0Jc3RydWN0IHNsZWVwcXVldWVfY2hhaW4gKnNjOwotCXN0cnVjdCBzbGVlcHF1ZXVlICpz cTsKLQlzdHJ1Y3QgdGhyZWFkICp0ZDsKLQl2b2lkICp3Y2hhbjsKLQlpbnQgd2FrZXVwX3N3YXBw ZXI7CisJc3RydWN0IHRocmVhZCAqdGQgPSBhcmc7CisJaW50IHdha2V1cF9zd2FwcGVyID0gMDsK IAotCXRkID0gYXJnOwotCXdha2V1cF9zd2FwcGVyID0gMDsKIAlDVFIzKEtUUl9QUk9DLCAic2xl ZXBxX3RpbWVvdXQ6IHRocmVhZCAlcCAocGlkICVsZCwgJXMpIiwKIAkgICAgKHZvaWQgKil0ZCwg KGxvbmcpdGQtPnRkX3Byb2MtPnBfcGlkLCAodm9pZCAqKXRkLT50ZF9uYW1lKTsKIAotCS8qCi0J ICogRmlyc3QsIHNlZSBpZiB0aGUgdGhyZWFkIGlzIGFzbGVlcCBhbmQgZ2V0IHRoZSB3YWl0IGNo YW5uZWwgaWYKLQkgKiBpdCBpcy4KLQkgKi8KLQl0aHJlYWRfbG9jayh0ZCk7Ci0JaWYgKFREX0lT X1NMRUVQSU5HKHRkKSAmJiBURF9PTl9TTEVFUFEodGQpKSB7Ci0JCXdjaGFuID0gdGQtPnRkX3dj aGFuOwotCQlzYyA9IFNDX0xPT0tVUCh3Y2hhbik7Ci0JCVRIUkVBRF9MT0NLUFRSX0FTU0VSVCh0 ZCwgJnNjLT5zY19sb2NrKTsKLQkJc3EgPSBzbGVlcHFfbG9va3VwKHdjaGFuKTsKLQkJTVBBU1Mo c3EgIT0gTlVMTCk7Ci0JCXRkLT50ZF9mbGFncyB8PSBUREZfVElNRU9VVDsKLQkJd2FrZXVwX3N3 YXBwZXIgPSBzbGVlcHFfcmVzdW1lX3RocmVhZChzcSwgdGQsIDApOwotCQl0aHJlYWRfdW5sb2Nr KHRkKTsKLQkJaWYgKHdha2V1cF9zd2FwcGVyKQotCQkJa2lja19wcm9jMCgpOwotCQlyZXR1cm47 Ci0JfQorCS8qIEhhbmRsZSB0aGUgdGhyZWUgY2FzZXMgd2hpY2ggY2FuIGhhcHBlbiAqLwogCi0J LyoKLQkgKiBJZiB0aGUgdGhyZWFkIGlzIG9uIHRoZSBTTEVFUFEgYnV0IGlzbid0IHNsZWVwaW5n IHlldCwgaXQKLQkgKiBjYW4gZWl0aGVyIGJlIG9uIGFub3RoZXIgQ1BVIGluIGJldHdlZW4gc2xl ZXBxX2FkZCgpIGFuZAotCSAqIG9uZSBvZiB0aGUgc2xlZXBxXyp3YWl0KigpIHJvdXRpbmVzIG9y IGl0IGNhbiBiZSBpbgotCSAqIHNsZWVwcV9jYXRjaF9zaWduYWxzKCkuCi0JICovCisJdGhyZWFk X2xvY2sodGQpOwogCWlmIChURF9PTl9TTEVFUFEodGQpKSB7Ci0JCXRkLT50ZF9mbGFncyB8PSBU REZfVElNRU9VVDsKLQkJdGhyZWFkX3VubG9jayh0ZCk7Ci0JCXJldHVybjsKLQl9CisJCWlmIChU RF9JU19TTEVFUElORyh0ZCkpIHsKKwkJCXN0cnVjdCBzbGVlcHF1ZXVlX2NoYWluICpzYzsKKwkJ CXN0cnVjdCBzbGVlcHF1ZXVlICpzcTsKKwkJCXZvaWQgKndjaGFuOwogCi0JLyoKLQkgKiBOb3cg Y2hlY2sgZm9yIHRoZSBlZGdlIGNhc2VzLiAgRmlyc3QsIGlmIFRERl9USU1FT1VUIGlzIHNldCwK LQkgKiB0aGVuIHRoZSBvdGhlciB0aHJlYWQgaGFzIGFscmVhZHkgeWllbGRlZCB0byB1cywgc28g Y2xlYXIKLQkgKiB0aGUgZmxhZyBhbmQgcmVzdW1lIGl0LiAgSWYgVERGX1RJTUVPVVQgaXMgbm90 IHNldCwgdGhlbiB0aGUKLQkgKiB3ZSBrbm93IHRoYXQgdGhlIG90aGVyIHRocmVhZCBpcyBub3Qg b24gYSBzbGVlcCBxdWV1ZSwgYnV0IGl0Ci0JICogaGFzbid0IHJlc3VtZWQgZXhlY3V0aW9uIHll dC4gIEluIHRoYXQgY2FzZSwgc2V0IFRERl9USU1PRkFJTAotCSAqIHRvIGxldCBpdCBrbm93IHRo YXQgdGhlIHRpbWVvdXQgaGFzIGFscmVhZHkgcnVuIGFuZCBkb2Vzbid0Ci0JICogbmVlZCB0byBi ZSBjYW5jZWxlZC4KLQkgKi8KLQlpZiAodGQtPnRkX2ZsYWdzICYgVERGX1RJTUVPVVQpIHsKLQkJ TVBBU1MoVERfSVNfU0xFRVBJTkcodGQpKTsKLQkJdGQtPnRkX2ZsYWdzICY9IH5UREZfVElNRU9V VDsKLQkJVERfQ0xSX1NMRUVQSU5HKHRkKTsKLQkJd2FrZXVwX3N3YXBwZXIgPSBzZXRydW5uYWJs ZSh0ZCk7Ci0JfSBlbHNlCi0JCXRkLT50ZF9mbGFncyB8PSBUREZfVElNT0ZBSUw7CisJCQkvKgor CQkJICogQ2FzZSBJIC0gdGhyZWFkIGlzIGFzbGVlcCBhbmQgbmVlZHMgdG8gYmUKKwkJCSAqIGF3 b2tlbjoKKwkJCSAqLworCQkJd2NoYW4gPSB0ZC0+dGRfd2NoYW47CisJCQlzYyA9IFNDX0xPT0tV UCh3Y2hhbik7CisJCQlUSFJFQURfTE9DS1BUUl9BU1NFUlQodGQsICZzYy0+c2NfbG9jayk7CisJ CQlzcSA9IHNsZWVwcV9sb29rdXAod2NoYW4pOworCQkJTVBBU1Moc3EgIT0gTlVMTCk7CisJCQl0 ZC0+dGRfZmxhZ3MgfD0gVERGX1RJTUVPVVQ7CisJCQl3YWtldXBfc3dhcHBlciA9IHNsZWVwcV9y ZXN1bWVfdGhyZWFkKHNxLCB0ZCwgMCk7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogQ2FzZSBJ SSAtIGNhbmNlbCBnb2luZyB0byBzbGVlcCBieSBzZXR0aW5nCisJCQkgKiB0aGUgdGltZW91dCBm bGFnIGJlY2F1c2UgdGhlIHRhcmdldCB0aHJlYWQKKwkJCSAqIGlzIG5vdCBhc2xlZXAgeWV0LiBJ dCBjYW4gYmUgb24gYW5vdGhlciBDUFUKKwkJCSAqIGluIGJldHdlZW4gc2xlZXBxX2FkZCgpIGFu ZCBvbmUgb2YgdGhlCisJCQkgKiBzbGVlcHFfKndhaXQqKCkgcm91dGluZXMgb3IgaXQgY2FuIGJl IGluCisJCQkgKiBzbGVlcHFfY2F0Y2hfc2lnbmFscygpLgorCQkJICovCisJCQl0ZC0+dGRfZmxh Z3MgfD0gVERGX1RJTUVPVVQ7CisJCX0KKwl9IGVsc2UgeworCQkvKgorCQkgKiBDYXNlIElJSSAt IHRocmVhZCBpcyBhbHJlYWR5IHdva2VuIHVwIGJ5IGEgd2FrZXVwCisJCSAqIGNhbGwgYW5kIHNo b3VsZCBub3QgdGltZW91dC4gTm90aGluZyB0byBkbyEKKwkJICovCisJfQogCXRocmVhZF91bmxv Y2sodGQpOwogCWlmICh3YWtldXBfc3dhcHBlcikKIAkJa2lja19wcm9jMCgpOwpkaWZmIC0tZ2l0 IGEvcHJvamVjdHMvaHBzX2hlYWQvc3lzL2tlcm4va2Vybl90aW1lb3V0LmMgYi9wcm9qZWN0cy9o cHNfaGVhZC9zeXMva2Vybi9rZXJuX3RpbWVvdXQuYwotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9z eXMva2Vybi9rZXJuX3RpbWVvdXQuYworKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9r ZXJuX3RpbWVvdXQuYwpAQCAtNTQsNiArNTQsOCBAQAogI2luY2x1ZGUgPHN5cy9sb2NrLmg+CiAj aW5jbHVkZSA8c3lzL21hbGxvYy5oPgogI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2luY2x1ZGUg PHN5cy9ybWxvY2suaD4KKyNpbmNsdWRlIDxzeXMvcndsb2NrLmg+CiAjaW5jbHVkZSA8c3lzL3By b2MuaD4KICNpbmNsdWRlIDxzeXMvc2R0Lmg+CiAjaW5jbHVkZSA8c3lzL3NsZWVwcXVldWUuaD4K QEAgLTc1LDI4ICs3NywyNSBAQAogICAgICJzdHJ1Y3QgY2FsbG91dCAqIik7CiAKICNpZmRlZiBD QUxMT1VUX1BST0ZJTElORwotc3RhdGljIGludCBhdmdfZGVwdGg7Ci1TWVNDVExfSU5UKF9kZWJ1 ZywgT0lEX0FVVE8sIHRvX2F2Z19kZXB0aCwgQ1RMRkxBR19SRCwgJmF2Z19kZXB0aCwgMCwKK3N0 YXRpYyBpbnQgYXZnX2RlcHRoWzJdOworU1lTQ1RMX0lOVChfZGVidWcsIE9JRF9BVVRPLCB0b19h dmdfZGVwdGgsIENUTEZMQUdfUkQsICZhdmdfZGVwdGhbMF0sIDAsCiAgICAgIkF2ZXJhZ2UgbnVt YmVyIG9mIGl0ZW1zIGV4YW1pbmVkIHBlciBzb2Z0Y2xvY2sgY2FsbC4gVW5pdHMgPSAxLzEwMDAi KTsKLXN0YXRpYyBpbnQgYXZnX2djYWxsczsKLVNZU0NUTF9JTlQoX2RlYnVnLCBPSURfQVVUTywg dG9fYXZnX2djYWxscywgQ1RMRkxBR19SRCwgJmF2Z19nY2FsbHMsIDAsCitzdGF0aWMgaW50IGF2 Z19nY2FsbHNbMl07CitTWVNDVExfSU5UKF9kZWJ1ZywgT0lEX0FVVE8sIHRvX2F2Z19nY2FsbHMs IENUTEZMQUdfUkQsICZhdmdfZ2NhbGxzWzBdLCAwLAogICAgICJBdmVyYWdlIG51bWJlciBvZiBH aWFudCBjYWxsb3V0cyBtYWRlIHBlciBzb2Z0Y2xvY2sgY2FsbC4gVW5pdHMgPSAxLzEwMDAiKTsK LXN0YXRpYyBpbnQgYXZnX2xvY2tjYWxsczsKLVNZU0NUTF9JTlQoX2RlYnVnLCBPSURfQVVUTywg dG9fYXZnX2xvY2tjYWxscywgQ1RMRkxBR19SRCwgJmF2Z19sb2NrY2FsbHMsIDAsCitzdGF0aWMg aW50IGF2Z19sb2NrY2FsbHNbMl07CitTWVNDVExfSU5UKF9kZWJ1ZywgT0lEX0FVVE8sIHRvX2F2 Z19sb2NrY2FsbHMsIENUTEZMQUdfUkQsICZhdmdfbG9ja2NhbGxzWzBdLCAwLAogICAgICJBdmVy YWdlIG51bWJlciBvZiBsb2NrIGNhbGxvdXRzIG1hZGUgcGVyIHNvZnRjbG9jayBjYWxsLiBVbml0 cyA9IDEvMTAwMCIpOwotc3RhdGljIGludCBhdmdfbXBjYWxsczsKLVNZU0NUTF9JTlQoX2RlYnVn LCBPSURfQVVUTywgdG9fYXZnX21wY2FsbHMsIENUTEZMQUdfUkQsICZhdmdfbXBjYWxscywgMCwK K3N0YXRpYyBpbnQgYXZnX21wY2FsbHNbMl07CitTWVNDVExfSU5UKF9kZWJ1ZywgT0lEX0FVVE8s IHRvX2F2Z19tcGNhbGxzLCBDVExGTEFHX1JELCAmYXZnX21wY2FsbHNbMF0sIDAsCiAgICAgIkF2 ZXJhZ2UgbnVtYmVyIG9mIE1QIGNhbGxvdXRzIG1hZGUgcGVyIHNvZnRjbG9jayBjYWxsLiBVbml0 cyA9IDEvMTAwMCIpOwotc3RhdGljIGludCBhdmdfZGVwdGhfZGlyOwotU1lTQ1RMX0lOVChfZGVi dWcsIE9JRF9BVVRPLCB0b19hdmdfZGVwdGhfZGlyLCBDVExGTEFHX1JELCAmYXZnX2RlcHRoX2Rp ciwgMCwKK1NZU0NUTF9JTlQoX2RlYnVnLCBPSURfQVVUTywgdG9fYXZnX2RlcHRoX2RpciwgQ1RM RkxBR19SRCwgJmF2Z19kZXB0aFsxXSwgMCwKICAgICAiQXZlcmFnZSBudW1iZXIgb2YgZGlyZWN0 IGNhbGxvdXRzIGV4YW1pbmVkIHBlciBjYWxsb3V0X3Byb2Nlc3MgY2FsbC4gIgogICAgICJVbml0 cyA9IDEvMTAwMCIpOwotc3RhdGljIGludCBhdmdfbG9ja2NhbGxzX2RpcjsKIFNZU0NUTF9JTlQo X2RlYnVnLCBPSURfQVVUTywgdG9fYXZnX2xvY2tjYWxsc19kaXIsIENUTEZMQUdfUkQsCi0gICAg JmF2Z19sb2NrY2FsbHNfZGlyLCAwLCAiQXZlcmFnZSBudW1iZXIgb2YgbG9jayBkaXJlY3QgY2Fs bG91dHMgbWFkZSBwZXIgIgorICAgICZhdmdfbG9ja2NhbGxzWzFdLCAwLCAiQXZlcmFnZSBudW1i ZXIgb2YgbG9jayBkaXJlY3QgY2FsbG91dHMgbWFkZSBwZXIgIgogICAgICJjYWxsb3V0X3Byb2Nl c3MgY2FsbC4gVW5pdHMgPSAxLzEwMDAiKTsKLXN0YXRpYyBpbnQgYXZnX21wY2FsbHNfZGlyOwot U1lTQ1RMX0lOVChfZGVidWcsIE9JRF9BVVRPLCB0b19hdmdfbXBjYWxsc19kaXIsIENUTEZMQUdf UkQsICZhdmdfbXBjYWxsc19kaXIsCitTWVNDVExfSU5UKF9kZWJ1ZywgT0lEX0FVVE8sIHRvX2F2 Z19tcGNhbGxzX2RpciwgQ1RMRkxBR19SRCwgJmF2Z19tcGNhbGxzWzFdLAogICAgIDAsICJBdmVy YWdlIG51bWJlciBvZiBNUCBkaXJlY3QgY2FsbG91dHMgbWFkZSBwZXIgY2FsbG91dF9wcm9jZXNz IGNhbGwuICIKICAgICAiVW5pdHMgPSAxLzEwMDAiKTsKICNlbmRpZgpAQCAtMTI0LDY0ICsxMjMs MjMwIEBACiAgKi8KIHVfaW50IGNhbGx3aGVlbHNpemUsIGNhbGx3aGVlbG1hc2s7CiAKKyNkZWZp bmUJQ0FMTE9VVF9SRVRfTk9STUFMCTAKKyNkZWZpbmUJQ0FMTE9VVF9SRVRfQ0FOQ0VMTEVECTEK KyNkZWZpbmUJQ0FMTE9VVF9SRVRfRFJBSU5JTkcJMgorCitzdHJ1Y3QgY2FsbG91dF9hcmdzIHsK KwlzYmludGltZV90IHRpbWU7CQkvKiBhYnNvbHV0ZSB0aW1lIGZvciB0aGUgZXZlbnQgKi8KKwlz YmludGltZV90IHByZWNpc2lvbjsJCS8qIGRlbHRhIGFsbG93ZWQgd3J0IG9wdCAqLworCXZvaWQJ KmFyZzsJCQkvKiBmdW5jdGlvbiBhcmd1bWVudCAqLworCWNhbGxvdXRfZnVuY190ICpmdW5jOwkJ LyogZnVuY3Rpb24gdG8gY2FsbCAqLworCWludAlmbGFnczsJCQkvKiBmbGFncyBwYXNzZWQgdG8g Y2FsbG91dF9yZXNldCgpICovCisJaW50CWNwdTsJCQkvKiBDUFUgd2UncmUgc2NoZWR1bGVkIG9u ICovCit9OworCit0eXBlZGVmIHZvaWQgY2FsbG91dF9tdXRleF9vcF90KHN0cnVjdCBsb2NrX29i amVjdCAqKTsKKworc3RydWN0IGNhbGxvdXRfbXV0ZXhfb3BzIHsKKwljYWxsb3V0X211dGV4X29w X3QgKmxvY2s7CisJY2FsbG91dF9tdXRleF9vcF90ICp1bmxvY2s7Cit9OworCitlbnVtIHsKKwlD QUxMT1VUX0xDX1VOVVNFRF8wLAorCUNBTExPVVRfTENfVU5VU0VEXzEsCisJQ0FMTE9VVF9MQ19V TlVTRURfMiwKKwlDQUxMT1VUX0xDX1VOVVNFRF8zLAorCUNBTExPVVRfTENfU1BJTiwKKwlDQUxM T1VUX0xDX01VVEVYLAorCUNBTExPVVRfTENfUlcsCisJQ0FMTE9VVF9MQ19STSwKK307CisKK3N0 YXRpYyB2b2lkCitjYWxsb3V0X211dGV4X29wX25vbmUoc3RydWN0IGxvY2tfb2JqZWN0ICpsb2Nr KQoreworfQorCitzdGF0aWMgdm9pZAorY2FsbG91dF9tdXRleF9sb2NrKHN0cnVjdCBsb2NrX29i amVjdCAqbG9jaykKK3sKKworCW10eF9sb2NrKChzdHJ1Y3QgbXR4ICopbG9jayk7Cit9CisKK3N0 YXRpYyB2b2lkCitjYWxsb3V0X211dGV4X3VubG9jayhzdHJ1Y3QgbG9ja19vYmplY3QgKmxvY2sp Cit7CisKKwltdHhfdW5sb2NrKChzdHJ1Y3QgbXR4ICopbG9jayk7Cit9CisKK3N0YXRpYyB2b2lk CitjYWxsb3V0X211dGV4X2xvY2tfc3BpbihzdHJ1Y3QgbG9ja19vYmplY3QgKmxvY2spCit7CisK KwltdHhfbG9ja19zcGluKChzdHJ1Y3QgbXR4ICopbG9jayk7Cit9CisKK3N0YXRpYyB2b2lkCitj YWxsb3V0X211dGV4X3VubG9ja19zcGluKHN0cnVjdCBsb2NrX29iamVjdCAqbG9jaykKK3sKKwor CW10eF91bmxvY2tfc3Bpbigoc3RydWN0IG10eCAqKWxvY2spOworfQorCitzdGF0aWMgdm9pZAor Y2FsbG91dF9ybV93bG9jayhzdHJ1Y3QgbG9ja19vYmplY3QgKmxvY2spCit7CisKKwlybV93bG9j aygoc3RydWN0IHJtbG9jayAqKWxvY2spOworfQorCitzdGF0aWMgdm9pZAorY2FsbG91dF9ybV93 dW5sb2NrKHN0cnVjdCBsb2NrX29iamVjdCAqbG9jaykKK3sKKworCXJtX3d1bmxvY2soKHN0cnVj dCBybWxvY2sgKilsb2NrKTsKK30KKworc3RhdGljIHZvaWQKK2NhbGxvdXRfcndfd2xvY2soc3Ry dWN0IGxvY2tfb2JqZWN0ICpsb2NrKQoreworCisJcndfd2xvY2soKHN0cnVjdCByd2xvY2sgKils b2NrKTsKK30KKworc3RhdGljIHZvaWQKK2NhbGxvdXRfcndfd3VubG9jayhzdHJ1Y3QgbG9ja19v YmplY3QgKmxvY2spCit7CisKKwlyd193dW5sb2NrKChzdHJ1Y3Qgcndsb2NrICopbG9jayk7Cit9 CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2FsbG91dF9tdXRleF9vcHMgY2FsbG91dF9tdXRleF9v cHNbOF0gPSB7CisJW0NBTExPVVRfTENfVU5VU0VEXzBdID0geworCQkubG9jayA9IGNhbGxvdXRf bXV0ZXhfb3Bfbm9uZSwKKwkJLnVubG9jayA9IGNhbGxvdXRfbXV0ZXhfb3Bfbm9uZSwKKwl9LAor CVtDQUxMT1VUX0xDX1VOVVNFRF8xXSA9IHsKKwkJLmxvY2sgPSBjYWxsb3V0X211dGV4X29wX25v bmUsCisJCS51bmxvY2sgPSBjYWxsb3V0X211dGV4X29wX25vbmUsCisJfSwKKwlbQ0FMTE9VVF9M Q19VTlVTRURfMl0gPSB7CisJCS5sb2NrID0gY2FsbG91dF9tdXRleF9vcF9ub25lLAorCQkudW5s b2NrID0gY2FsbG91dF9tdXRleF9vcF9ub25lLAorCX0sCisJW0NBTExPVVRfTENfVU5VU0VEXzNd ID0geworCQkubG9jayA9IGNhbGxvdXRfbXV0ZXhfb3Bfbm9uZSwKKwkJLnVubG9jayA9IGNhbGxv dXRfbXV0ZXhfb3Bfbm9uZSwKKwl9LAorCVtDQUxMT1VUX0xDX1NQSU5dID0geworCQkubG9jayA9 IGNhbGxvdXRfbXV0ZXhfbG9ja19zcGluLAorCQkudW5sb2NrID0gY2FsbG91dF9tdXRleF91bmxv Y2tfc3BpbiwKKwl9LAorCVtDQUxMT1VUX0xDX01VVEVYXSA9IHsKKwkJLmxvY2sgPSBjYWxsb3V0 X211dGV4X2xvY2ssCisJCS51bmxvY2sgPSBjYWxsb3V0X211dGV4X3VubG9jaywKKwl9LAorCVtD QUxMT1VUX0xDX1JXXSA9IHsKKwkJLmxvY2sgPSBjYWxsb3V0X3J3X3dsb2NrLAorCQkudW5sb2Nr ID0gY2FsbG91dF9yd193dW5sb2NrLAorCX0sCisJW0NBTExPVVRfTENfUk1dID0geworCQkubG9j ayA9IGNhbGxvdXRfcm1fd2xvY2ssCisJCS51bmxvY2sgPSBjYWxsb3V0X3JtX3d1bmxvY2ssCisJ fSwKK307CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorY2FsbG91dF9sb2NrX2NsaWVudChpbnQgY19m bGFncywgc3RydWN0IGxvY2tfb2JqZWN0ICpjX2xvY2spCit7CisKKwljYWxsb3V0X211dGV4X29w c1tDQUxMT1VUX0dFVF9MQyhjX2ZsYWdzKV0ubG9jayhjX2xvY2spOworfQorCitzdGF0aWMgaW5s aW5lIHZvaWQKK2NhbGxvdXRfdW5sb2NrX2NsaWVudChpbnQgY19mbGFncywgc3RydWN0IGxvY2tf b2JqZWN0ICpjX2xvY2spCit7CisKKwljYWxsb3V0X211dGV4X29wc1tDQUxMT1VUX0dFVF9MQyhj X2ZsYWdzKV0udW5sb2NrKGNfbG9jayk7Cit9CisKIC8qCi0gKiBUaGUgY2FsbG91dCBjcHUgZXhl YyBlbnRpdGllcyByZXByZXNlbnQgaW5mb3JtYXRpb25zIG5lY2Vzc2FyeSBmb3IKLSAqIGRlc2Ny aWJpbmcgdGhlIHN0YXRlIG9mIGNhbGxvdXRzIGN1cnJlbnRseSBydW5uaW5nIG9uIHRoZSBDUFUg YW5kIHRoZSBvbmVzCi0gKiBuZWNlc3NhcnkgZm9yIG1pZ3JhdGluZyBjYWxsb3V0cyB0byB0aGUg bmV3IGNhbGxvdXQgY3B1LiBJbiBwYXJ0aWN1bGFyLAotICogdGhlIGZpcnN0IGVudHJ5IG9mIHRo ZSBhcnJheSBjY19leGVjX2VudGl0eSBob2xkcyBpbmZvcm1hdGlvbnMgZm9yIGNhbGxvdXQKLSAq IHJ1bm5pbmcgaW4gU1dJIHRocmVhZCBjb250ZXh0LCB3aGlsZSB0aGUgc2Vjb25kIG9uZSBob2xk cyBpbmZvcm1hdGlvbnMKLSAqIGZvciBjYWxsb3V0IHJ1bm5pbmcgZGlyZWN0bHkgZnJvbSBoYXJk d2FyZSBpbnRlcnJ1cHQgY29udGV4dC4KLSAqIFRoZSBjYWNoZWQgaW5mb3JtYXRpb25zIGFyZSB2 ZXJ5IGltcG9ydGFudCBmb3IgZGVmZXJyaW5nIG1pZ3JhdGlvbiB3aGVuCi0gKiB0aGUgbWlncmF0 aW5nIGNhbGxvdXQgaXMgYWxyZWFkeSBydW5uaW5nLgorICogVGhlIGNhbGxvdXQgQ1BVIGV4ZWMg c3RydWN0dXJlIHJlcHJlc2VudCBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yCisgKiBkZXNjcmli aW5nIHRoZSBzdGF0ZSBvZiBjYWxsb3V0cyBjdXJyZW50bHkgcnVubmluZyBvbiB0aGUgQ1BVIGFu ZAorICogZm9yIGhhbmRsaW5nIGRlZmVycmVkIGNhbGxvdXQgcmVzdGFydHMuCisgKgorICogSW4g cGFydGljdWxhciwgdGhlIGZpcnN0IGVudHJ5IG9mIHRoZSBhcnJheSBjY19leGVjX2VudGl0eSBo b2xkcworICogaW5mb3JtYXRpb24gZm9yIGNhbGxvdXRzIHJ1bm5pbmcgZnJvbSB0aGUgU1dJIHRo cmVhZCBjb250ZXh0LCB3aGlsZQorICogdGhlIHNlY29uZCBvbmUgaG9sZHMgaW5mb3JtYXRpb24g Zm9yIGNhbGxvdXRzIHJ1bm5pbmcgZGlyZWN0bHkgZnJvbQorICogdGhlIGhhcmR3YXJlIGludGVy cnVwdCBjb250ZXh0LgogICovCiBzdHJ1Y3QgY2NfZXhlYyB7CisJLyoKKwkgKiBUaGUgImNjX2N1 cnIiIHBvaW50cyB0byB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjYWxsb3V0IGFuZAorCSAqIGlz IHByb3RlY3RlZCBieSB0aGUgImNjX2xvY2siIHNwaW5sb2NrLiBJZiBubyBjYWxsYmFjayBpcwor CSAqIGN1cnJlbnRseSBleGVjdXRpbmcgaXQgaXMgZXF1YWwgdG8gIk5VTEwiLgorCSAqLwogCXN0 cnVjdCBjYWxsb3V0CQkqY2NfY3VycjsKLSNpZmRlZiBTTVAKLQl2b2lkCQkJKCpjZV9taWdyYXRp b25fZnVuYykodm9pZCAqKTsKLQl2b2lkCQkJKmNlX21pZ3JhdGlvbl9hcmc7Ci0JaW50CQkJY2Vf bWlncmF0aW9uX2NwdTsKLQlzYmludGltZV90CQljZV9taWdyYXRpb25fdGltZTsKLQlzYmludGlt ZV90CQljZV9taWdyYXRpb25fcHJlYzsKKwkvKgorCSAqIFRoZSAiY2NfcmVzdGFydF9hcmdzIiBz dHJ1Y3R1cmUgaG9sZHMgdGhlIGFyZ3VtZW50IGZvciBhCisJICogZGVmZXJyZWQgY2FsbGJhY2sg cmVzdGFydCBhbmQgaXMgcHJvdGVjdGVkIGJ5IHRoZSAiY2NfbG9jayIKKwkgKiBzcGlubG9jay4g VGhlIHN0cnVjdHVyZSBpcyBvbmx5IHZhbGlkIGlmICJjY19yZXN0YXJ0IiBpcworCSAqICJ0cnVl Ii4gSWYgImNjX3Jlc3RhcnQiIGlzICJmYWxzZSIgdGhlIGluZm9ybWF0aW9uIGluIHRoZQorCSAq ICJjY19yZXN0YXJ0X2FyZ3MiIHN0cnVjdHVyZSBzaGFsbCBiZSBpZ25vcmVkLgorCSAqLworCXN0 cnVjdCBjYWxsb3V0X2FyZ3MJY2NfcmVzdGFydF9hcmdzOworCWJvb2wJCQljY19yZXN0YXJ0Owor CS8qCisJICogVGhlICJjY19jYW5jZWwiIHZhcmlhYmxlIGFsbG93cyB0aGUgY3VycmVudGx5IHBl bmRpbmcKKwkgKiBjYWxsYmFjayB0byBiZSBhdG9taWNhbGx5IGNhbmNlbGxlZC4gVGhpcyBmaWVs ZCBpcyB3cml0ZQorCSAqIHByb3RlY3RlZCBieSB0aGUgImNjX2xvY2siIHNwaW5sb2NrLgorCSAq LworCWJvb2wgY2NfY2FuY2VsOworCS8qCisJICogVGhlICJjY19kcmFpbl9mbiIgcG9pbnRzIHRv IGEgZnVuY3Rpb24gd2hpY2ggc2hhbGwgYmUKKwkgKiBjYWxsZWQgd2l0aCB0aGUgYXJndW1lbnQg c3RvcmVkIGluICJjY19kcmFpbl9hcmciIHdoZW4gYW4KKwkgKiBhc3luY2hyb25vdXMgZHJhaW4g aXMgcGVyZm9ybWVkLiBUaGlzIGZpZWxkIGlzIHdyaXRlCisJICogcHJvdGVjdGVkIGJ5IHRoZSAi Y2NfbG9jayIgc3BpbmxvY2suCisJICovCisJY2FsbG91dF9mdW5jX3QgKmNjX2RyYWluX2ZuOwor CXZvaWQgKmNjX2RyYWluX2FyZzsKKwkvKgorCSAqIFRoZSBmb2xsb3dpbmcgZmllbGRzIGFyZSB1 c2VkIGZvciBjYWxsb3V0IHByb2ZpbGluZyBvbmx5OgorCSAqLworI2lmZGVmIENBTExPVVRfUFJP RklMSU5HCisJaW50IGNjX2RlcHRoOworCWludCBjY19tcGNhbGxzOworCWludCBjY19sb2NrY2Fs bHM7CisJaW50IGNjX2djYWxsczsKICNlbmRpZgotCWJvb2wJCQljY19jYW5jZWw7Ci0JYm9vbAkJ CWNjX3dhaXRpbmc7CiB9OwogCiAvKgotICogVGhlcmUgaXMgb25lIHN0cnVjdCBjYWxsb3V0X2Nw dSBwZXIgY3B1LCBob2xkaW5nIGFsbCByZWxldmFudAorICogVGhlcmUgaXMgb25lICJzdHJ1Y3Qg Y2FsbG91dF9jcHUiIHBlciBDUFUsIGhvbGRpbmcgYWxsIHJlbGV2YW50CiAgKiBzdGF0ZSBmb3Ig dGhlIGNhbGxvdXQgcHJvY2Vzc2luZyB0aHJlYWQgb24gdGhlIGluZGl2aWR1YWwgQ1BVLgogICov CiBzdHJ1Y3QgY2FsbG91dF9jcHUgewogCXN0cnVjdCBtdHhfcGFkYWxpZ24JY2NfbG9jazsKIAlz dHJ1Y3QgY2NfZXhlYyAJCWNjX2V4ZWNfZW50aXR5WzJdOwotCXN0cnVjdCBjYWxsb3V0CQkqY2Nf bmV4dDsKIAlzdHJ1Y3QgY2FsbG91dAkJKmNjX2NhbGxvdXQ7CiAJc3RydWN0IGNhbGxvdXRfbGlz dAkqY2NfY2FsbHdoZWVsOworCXN0cnVjdCBjYWxsb3V0X2xpc3QJY2NfdG1wbGlzdDsKIAlzdHJ1 Y3QgY2FsbG91dF90YWlscQljY19leHBpcmVxOwogCXN0cnVjdCBjYWxsb3V0X3NsaXN0CWNjX2Nh bGxmcmVlOwogCXNiaW50aW1lX3QJCWNjX2ZpcnN0ZXZlbnQ7CiAJc2JpbnRpbWVfdAkJY2NfbGFz dHNjYW47CiAJdm9pZAkJCSpjY19jb29raWU7Ci0JdV9pbnQJCQljY19idWNrZXQ7Ci0JdV9pbnQJ CQljY19pbml0ZWQ7CiAJY2hhcgkJCWNjX2t0cl9ldmVudF9uYW1lWzIwXTsKIH07CiAKLSNkZWZp bmUJY2FsbG91dF9taWdyYXRpbmcoYykJKChjKS0+Y19pZmxhZ3MgJiBDQUxMT1VUX0RGUk1JR1JB VElPTikKKyNkZWZpbmUJY2NfZXhlY19jdXJyKGNjLCBkaXIpCQkoY2MpLT5jY19leGVjX2VudGl0 eVsoZGlyKV0uY2NfY3VycgorI2RlZmluZQljY19leGVjX3Jlc3RhcnRfYXJncyhjYywgZGlyKQko Y2MpLT5jY19leGVjX2VudGl0eVsoZGlyKV0uY2NfcmVzdGFydF9hcmdzCisjZGVmaW5lCWNjX2V4 ZWNfcmVzdGFydChjYywgZGlyKQkoY2MpLT5jY19leGVjX2VudGl0eVsoZGlyKV0uY2NfcmVzdGFy dAorI2RlZmluZQljY19leGVjX2NhbmNlbChjYywgZGlyKQkJKGNjKS0+Y2NfZXhlY19lbnRpdHlb KGRpcildLmNjX2NhbmNlbAorI2RlZmluZQljY19leGVjX2RyYWluX2ZuKGNjLCBkaXIpCShjYykt PmNjX2V4ZWNfZW50aXR5WyhkaXIpXS5jY19kcmFpbl9mbgorI2RlZmluZQljY19leGVjX2RyYWlu X2FyZyhjYywgZGlyKQkoY2MpLT5jY19leGVjX2VudGl0eVsoZGlyKV0uY2NfZHJhaW5fYXJnCisj ZGVmaW5lCWNjX2V4ZWNfZGVwdGgoY2MsIGRpcikJCShjYyktPmNjX2V4ZWNfZW50aXR5WyhkaXIp XS5jY19kZXB0aAorI2RlZmluZQljY19leGVjX21wY2FsbHMoY2MsIGRpcikJKGNjKS0+Y2NfZXhl Y19lbnRpdHlbKGRpcildLmNjX21wY2FsbHMKKyNkZWZpbmUJY2NfZXhlY19sb2NrY2FsbHMoY2Ms IGRpcikJKGNjKS0+Y2NfZXhlY19lbnRpdHlbKGRpcildLmNjX2xvY2tjYWxscworI2RlZmluZQlj Y19leGVjX2djYWxscyhjYywgZGlyKQkJKGNjKS0+Y2NfZXhlY19lbnRpdHlbKGRpcildLmNjX2dj YWxscwogCi0jZGVmaW5lCWNjX2V4ZWNfY3VycihjYywgZGlyKQkJY2MtPmNjX2V4ZWNfZW50aXR5 W2Rpcl0uY2NfY3VycgotI2RlZmluZQljY19leGVjX25leHQoY2MpCQljYy0+Y2NfbmV4dAotI2Rl ZmluZQljY19leGVjX2NhbmNlbChjYywgZGlyKQkJY2MtPmNjX2V4ZWNfZW50aXR5W2Rpcl0uY2Nf Y2FuY2VsCi0jZGVmaW5lCWNjX2V4ZWNfd2FpdGluZyhjYywgZGlyKQljYy0+Y2NfZXhlY19lbnRp dHlbZGlyXS5jY193YWl0aW5nCiAjaWZkZWYgU01QCi0jZGVmaW5lCWNjX21pZ3JhdGlvbl9mdW5j KGNjLCBkaXIpCWNjLT5jY19leGVjX2VudGl0eVtkaXJdLmNlX21pZ3JhdGlvbl9mdW5jCi0jZGVm aW5lCWNjX21pZ3JhdGlvbl9hcmcoY2MsIGRpcikJY2MtPmNjX2V4ZWNfZW50aXR5W2Rpcl0uY2Vf bWlncmF0aW9uX2FyZwotI2RlZmluZQljY19taWdyYXRpb25fY3B1KGNjLCBkaXIpCWNjLT5jY19l eGVjX2VudGl0eVtkaXJdLmNlX21pZ3JhdGlvbl9jcHUKLSNkZWZpbmUJY2NfbWlncmF0aW9uX3Rp bWUoY2MsIGRpcikJY2MtPmNjX2V4ZWNfZW50aXR5W2Rpcl0uY2VfbWlncmF0aW9uX3RpbWUKLSNk ZWZpbmUJY2NfbWlncmF0aW9uX3ByZWMoY2MsIGRpcikJY2MtPmNjX2V4ZWNfZW50aXR5W2Rpcl0u Y2VfbWlncmF0aW9uX3ByZWMKLQogc3RydWN0IGNhbGxvdXRfY3B1IGNjX2NwdVtNQVhDUFVdOwot I2RlZmluZQlDUFVCTE9DSwlNQVhDUFUKKyNkZWZpbmUJQ1BVQkxPQ0sJLTEKICNkZWZpbmUJQ0Nf Q1BVKGNwdSkJKCZjY19jcHVbKGNwdSldKQogI2RlZmluZQlDQ19TRUxGKCkJQ0NfQ1BVKFBDUFVf R0VUKGNwdWlkKSkKICNlbHNlCkBAIC0xOTYsNjcgKzM2MSwxMyBAQAogc3RhdGljIGludCB0aW1l b3V0X2NwdTsKIAogc3RhdGljIHZvaWQJY2FsbG91dF9jcHVfaW5pdChzdHJ1Y3QgY2FsbG91dF9j cHUgKmNjLCBpbnQgY3B1KTsKLXN0YXRpYyB2b2lkCXNvZnRjbG9ja19jYWxsX2NjKHN0cnVjdCBj YWxsb3V0ICpjLCBzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjLAotI2lmZGVmIENBTExPVVRfUFJPRklM SU5HCi0JCSAgICBpbnQgKm1wY2FsbHMsIGludCAqbG9ja2NhbGxzLCBpbnQgKmdjYWxscywKLSNl bmRpZgotCQkgICAgaW50IGRpcmVjdCk7CitzdGF0aWMgdm9pZAlzb2Z0Y2xvY2tfY2FsbF9jYyhz dHJ1Y3QgY2FsbG91dCAqYywgc3RydWN0IGNhbGxvdXRfY3B1ICpjYywgY29uc3QgaW50IGRpcmVj dCk7CiAKIHN0YXRpYyBNQUxMT0NfREVGSU5FKE1fQ0FMTE9VVCwgImNhbGxvdXQiLCAiQ2FsbG91 dCBkYXRhc3RydWN0dXJlcyIpOwogCi0vKioKLSAqIExvY2tlZCBieSBjY19sb2NrOgotICogICBj Y19jdXJyICAgICAgICAgLSBJZiBhIGNhbGxvdXQgaXMgaW4gcHJvZ3Jlc3MsIGl0IGlzIGNjX2N1 cnIuCi0gKiAgICAgICAgICAgICAgICAgICAgIElmIGNjX2N1cnIgaXMgbm9uLU5VTEwsIHRocmVh ZHMgd2FpdGluZyBpbgotICogICAgICAgICAgICAgICAgICAgICBjYWxsb3V0X2RyYWluKCkgd2ls bCBiZSB3b2tlbiB1cCBhcyBzb29uIGFzIHRoZQotICogICAgICAgICAgICAgICAgICAgICByZWxl dmFudCBjYWxsb3V0IGNvbXBsZXRlcy4KLSAqICAgY2NfY2FuY2VsICAgICAgIC0gQ2hhbmdpbmcg dG8gMSB3aXRoIGJvdGggY2FsbG91dF9sb2NrIGFuZCBjY19sb2NrIGhlbGQKLSAqICAgICAgICAg ICAgICAgICAgICAgZ3VhcmFudGVlcyB0aGF0IHRoZSBjdXJyZW50IGNhbGxvdXQgd2lsbCBub3Qg cnVuLgotICogICAgICAgICAgICAgICAgICAgICBUaGUgc29mdGNsb2NrKCkgZnVuY3Rpb24gc2V0 cyB0aGlzIHRvIDAgYmVmb3JlIGl0Ci0gKiAgICAgICAgICAgICAgICAgICAgIGRyb3BzIGNhbGxv dXRfbG9jayB0byBhY3F1aXJlIGNfbG9jaywgYW5kIGl0IGNhbGxzCi0gKiAgICAgICAgICAgICAg ICAgICAgIHRoZSBoYW5kbGVyIG9ubHkgaWYgY3Vycl9jYW5jZWxsZWQgaXMgc3RpbGwgMCBhZnRl cgotICogICAgICAgICAgICAgICAgICAgICBjY19sb2NrIGlzIHN1Y2Nlc3NmdWxseSBhY3F1aXJl ZC4KLSAqICAgY2Nfd2FpdGluZyAgICAgIC0gSWYgYSB0aHJlYWQgaXMgd2FpdGluZyBpbiBjYWxs b3V0X2RyYWluKCksIHRoZW4KLSAqICAgICAgICAgICAgICAgICAgICAgY2FsbG91dF93YWl0IGlz IG5vbnplcm8uICBTZXQgb25seSB3aGVuCi0gKiAgICAgICAgICAgICAgICAgICAgIGNjX2N1cnIg aXMgbm9uLU5VTEwuCi0gKi8KLQotLyoKLSAqIFJlc2V0cyB0aGUgZXhlY3V0aW9uIGVudGl0eSB0 aWVkIHRvIGEgc3BlY2lmaWMgY2FsbG91dCBjcHUuCi0gKi8KLXN0YXRpYyB2b2lkCi1jY19jY2Vf Y2xlYW51cChzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjLCBpbnQgZGlyZWN0KQotewotCi0JY2NfZXhl Y19jdXJyKGNjLCBkaXJlY3QpID0gTlVMTDsKLQljY19leGVjX2NhbmNlbChjYywgZGlyZWN0KSA9 IGZhbHNlOwotCWNjX2V4ZWNfd2FpdGluZyhjYywgZGlyZWN0KSA9IGZhbHNlOwotI2lmZGVmIFNN UAotCWNjX21pZ3JhdGlvbl9jcHUoY2MsIGRpcmVjdCkgPSBDUFVCTE9DSzsKLQljY19taWdyYXRp b25fdGltZShjYywgZGlyZWN0KSA9IDA7Ci0JY2NfbWlncmF0aW9uX3ByZWMoY2MsIGRpcmVjdCkg PSAwOwotCWNjX21pZ3JhdGlvbl9mdW5jKGNjLCBkaXJlY3QpID0gTlVMTDsKLQljY19taWdyYXRp b25fYXJnKGNjLCBkaXJlY3QpID0gTlVMTDsKLSNlbmRpZgotfQotCi0vKgotICogQ2hlY2tzIGlm IG1pZ3JhdGlvbiBpcyByZXF1ZXN0ZWQgYnkgYSBzcGVjaWZpYyBjYWxsb3V0IGNwdS4KLSAqLwot c3RhdGljIGludAotY2NfY2NlX21pZ3JhdGluZyhzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjLCBpbnQg ZGlyZWN0KQotewotCi0jaWZkZWYgU01QCi0JcmV0dXJuIChjY19taWdyYXRpb25fY3B1KGNjLCBk aXJlY3QpICE9IENQVUJMT0NLKTsKLSNlbHNlCi0JcmV0dXJuICgwKTsKLSNlbmRpZgotfQotCiAv KgotICogS2VybmVsIGxvdyBsZXZlbCBjYWxsd2hlZWwgaW5pdGlhbGl6YXRpb24KLSAqIGNhbGxl ZCBvbiBjcHUwIGR1cmluZyBrZXJuZWwgc3RhcnR1cC4KKyAqIEtlcm5lbCBsb3cgbGV2ZWwgY2Fs bHdoZWVsIGluaXRpYWxpemF0aW9uIGNhbGxlZCBmcm9tIGNwdTAgZHVyaW5nCisgKiBrZXJuZWwg c3RhcnR1cDoKICAqLwogc3RhdGljIHZvaWQKIGNhbGxvdXRfY2FsbHdoZWVsX2luaXQodm9pZCAq ZHVtbXkpCkBAIC0zMTEsNTQgKzQyMiw1MiBAQAogCiAJbXR4X2luaXQoJmNjLT5jY19sb2NrLCAi Y2FsbG91dCIsIE5VTEwsIE1UWF9TUElOIHwgTVRYX1JFQ1VSU0UpOwogCVNMSVNUX0lOSVQoJmNj LT5jY19jYWxsZnJlZSk7Ci0JY2MtPmNjX2luaXRlZCA9IDE7CiAJY2MtPmNjX2NhbGx3aGVlbCA9 IG1hbGxvYyhzaXplb2Yoc3RydWN0IGNhbGxvdXRfbGlzdCkgKiBjYWxsd2hlZWxzaXplLAogCSAg ICBNX0NBTExPVVQsIE1fV0FJVE9LKTsKIAlmb3IgKGkgPSAwOyBpIDwgY2FsbHdoZWVsc2l6ZTsg aSsrKQogCQlMSVNUX0lOSVQoJmNjLT5jY19jYWxsd2hlZWxbaV0pOwogCVRBSUxRX0lOSVQoJmNj LT5jY19leHBpcmVxKTsKKwlMSVNUX0lOSVQoJmNjLT5jY190bXBsaXN0KTsKIAljYy0+Y2NfZmly c3RldmVudCA9IFNCVF9NQVg7Ci0JZm9yIChpID0gMDsgaSA8IDI7IGkrKykKLQkJY2NfY2NlX2Ns ZWFudXAoY2MsIGkpOwogCXNucHJpbnRmKGNjLT5jY19rdHJfZXZlbnRfbmFtZSwgc2l6ZW9mKGNj LT5jY19rdHJfZXZlbnRfbmFtZSksCiAJICAgICJjYWxsd2hlZWwgY3B1ICVkIiwgY3B1KTsKIAlp ZiAoY2MtPmNjX2NhbGxvdXQgPT0gTlVMTCkJLyogT25seSBjcHUwIGhhbmRsZXMgdGltZW91dCg5 KSAqLwogCQlyZXR1cm47CiAJZm9yIChpID0gMDsgaSA8IG5jYWxsb3V0OyBpKyspIHsKIAkJYyA9 ICZjYy0+Y2NfY2FsbG91dFtpXTsKIAkJY2FsbG91dF9pbml0KGMsIDApOwotCQljLT5jX2lmbGFn cyA9IENBTExPVVRfTE9DQUxfQUxMT0M7CisJCWMtPmNfZmxhZ3MgfD0gQ0FMTE9VVF9MT0NBTF9B TExPQzsKIAkJU0xJU1RfSU5TRVJUX0hFQUQoJmNjLT5jY19jYWxsZnJlZSwgYywgY19saW5rcy5z bGUpOwogCX0KIH0KIAotI2lmZGVmIFNNUAotLyoKLSAqIFN3aXRjaGVzIHRoZSBjcHUgdGllZCB0 byBhIHNwZWNpZmljIGNhbGxvdXQuCi0gKiBUaGUgZnVuY3Rpb24gZXhwZWN0cyBhIGxvY2tlZCBp bmNvbWluZyBjYWxsb3V0IGNwdSBhbmQgcmV0dXJucyB3aXRoCi0gKiBsb2NrZWQgb3V0Y29taW5n IGNhbGxvdXQgY3B1LgotICovCi1zdGF0aWMgc3RydWN0IGNhbGxvdXRfY3B1ICoKLWNhbGxvdXRf Y3B1X3N3aXRjaChzdHJ1Y3QgY2FsbG91dCAqYywgc3RydWN0IGNhbGxvdXRfY3B1ICpjYywgaW50 IG5ld19jcHUpCisjaWZkZWYgQ0FMTE9VVF9QUk9GSUxJTkcKK3N0YXRpYyBpbmxpbmUgdm9pZAor Y2FsbG91dF9jbGVhcl9zdGF0cyhzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjLCBjb25zdCBpbnQgZGly ZWN0KQogewotCXN0cnVjdCBjYWxsb3V0X2NwdSAqbmV3X2NjOwotCi0JTVBBU1MoYyAhPSBOVUxM ICYmIGNjICE9IE5VTEwpOwotCUNDX0xPQ0tfQVNTRVJUKGNjKTsKKwljY19leGVjX2RlcHRoKGNj LCBkaXJlY3QpID0gMDsKKwljY19leGVjX21wY2FsbHMoY2MsIGRpcmVjdCkgPSAwOworCWNjX2V4 ZWNfbG9ja2NhbGxzKGNjLCBkaXJlY3QpID0gMDsKKwljY19leGVjX2djYWxscyhjYywgZGlyZWN0 KSA9IDA7Cit9CisjZW5kaWYKIAotCS8qCi0JICogQXZvaWQgaW50ZXJydXB0cyBhbmQgcHJlZW1w dGlvbiBmaXJpbmcgYWZ0ZXIgdGhlIGNhbGxvdXQgY3B1Ci0JICogaXMgYmxvY2tlZCBpbiBvcmRl ciB0byBhdm9pZCBkZWFkbG9ja3MgYXMgdGhlIG5ldyB0aHJlYWQKLQkgKiBtYXkgYmUgd2lsbGlu ZyB0byBhY3F1aXJlIHRoZSBjYWxsb3V0IGNwdSBsb2NrLgotCSAqLwotCWMtPmNfY3B1ID0gQ1BV QkxPQ0s7Ci0Jc3BpbmxvY2tfZW50ZXIoKTsKLQlDQ19VTkxPQ0soY2MpOwotCW5ld19jYyA9IEND X0NQVShuZXdfY3B1KTsKLQlDQ19MT0NLKG5ld19jYyk7Ci0Jc3BpbmxvY2tfZXhpdCgpOwotCWMt PmNfY3B1ID0gbmV3X2NwdTsKLQlyZXR1cm4gKG5ld19jYyk7CisjaWZkZWYgQ0FMTE9VVF9QUk9G SUxJTkcKK3N0YXRpYyBpbmxpbmUgdm9pZAorY2FsbG91dF91cGRhdGVfc3RhdHMoc3RydWN0IGNh bGxvdXRfY3B1ICpjYywgY29uc3QgaW50IGRpcmVjdCkKK3sKKwlhdmdfZGVwdGhbZGlyZWN0XSAr PQorCSAgICAoY2NfZXhlY19kZXB0aChjYywgZGlyZWN0KSAqIDEwMDAgLQorCSAgICBhdmdfZGVw dGhbZGlyZWN0XSkgPj4gODsKKwlhdmdfbXBjYWxsc1tkaXJlY3RdICs9CisJICAgIChjY19leGVj X21wY2FsbHMoY2MsIGRpcmVjdCkgKiAxMDAwIC0KKwkgICAgYXZnX21wY2FsbHNbZGlyZWN0XSkg Pj4gODsKKwlhdmdfbG9ja2NhbGxzW2RpcmVjdF0gKz0KKwkgICAgKGNjX2V4ZWNfbG9ja2NhbGxz KGNjLCBkaXJlY3QpICogMTAwMCAtCisJICAgIGF2Z19sb2NrY2FsbHNbZGlyZWN0XSkgPj4gODsK KwlhdmdfZ2NhbGxzW2RpcmVjdF0gKz0KKwkgICAgKGNjX2V4ZWNfZ2NhbGxzKGNjLCBkaXJlY3Qp ICogMTAwMCAtCisJICAgIGF2Z19nY2FsbHNbZGlyZWN0XSkgPj4gODsKIH0KICNlbmRpZgogCkBA IC00MjksMTkgKzUzOCwxOSBAQAogdm9pZAogY2FsbG91dF9wcm9jZXNzKHNiaW50aW1lX3Qgbm93 KQogewotCXN0cnVjdCBjYWxsb3V0ICp0bXAsICp0bXBuOworCXN0cnVjdCBjYWxsb3V0ICp0bXA7 CiAJc3RydWN0IGNhbGxvdXRfY3B1ICpjYzsKIAlzdHJ1Y3QgY2FsbG91dF9saXN0ICpzYzsKIAlz YmludGltZV90IGZpcnN0LCBsYXN0LCBtYXgsIHRtcF9tYXg7CiAJdWludDMyX3QgbG9va2FoZWFk OwogCXVfaW50IGZpcnN0YiwgbGFzdGIsIG5vd2I7Ci0jaWZkZWYgQ0FMTE9VVF9QUk9GSUxJTkcK LQlpbnQgZGVwdGhfZGlyID0gMCwgbXBjYWxsc19kaXIgPSAwLCBsb2NrY2FsbHNfZGlyID0gMDsK LSNlbmRpZgogCiAJY2MgPSBDQ19TRUxGKCk7Ci0JbXR4X2xvY2tfc3Bpbl9mbGFncygmY2MtPmNj X2xvY2ssIE1UWF9RVUlFVCk7CisJQ0NfTE9DSyhjYyk7CiAKKyNpZmRlZiBDQUxMT1VUX1BST0ZJ TElORworCWNhbGxvdXRfY2xlYXJfc3RhdHMoY2MsIDEpOworI2VuZGlmCiAJLyogQ29tcHV0ZSB0 aGUgYnVja2V0cyBvZiB0aGUgbGFzdCBzY2FuIGFuZCBwcmVzZW50IHRpbWVzLiAqLwogCWZpcnN0 YiA9IGNhbGxvdXRfaGFzaChjYy0+Y2NfbGFzdHNjYW4pOwogCWNjLT5jY19sYXN0c2NhbiA9IG5v dzsKQEAgLTQ3NCw2MSArNTgzLDU5IEBACiAJLyogSXRlcmF0ZSBjYWxsd2hlZWwgZnJvbSBmaXJz dGIgdG8gbm93YiBhbmQgdGhlbiB1cCB0byBsYXN0Yi4gKi8KIAlkbyB7CiAJCXNjID0gJmNjLT5j Y19jYWxsd2hlZWxbZmlyc3RiICYgY2FsbHdoZWVsbWFza107Ci0JCXRtcCA9IExJU1RfRklSU1Qo c2MpOwotCQl3aGlsZSAodG1wICE9IE5VTEwpIHsKKwkJd2hpbGUgKDEpIHsKKwkJCXRtcCA9IExJ U1RfRklSU1Qoc2MpOworCQkJaWYgKHRtcCA9PSBOVUxMKQorCQkJCWJyZWFrOworCisJCQlMSVNU X1JFTU9WRSh0bXAsIGNfbGlua3MubGUpOworCiAJCQkvKiBSdW4gdGhlIGNhbGxvdXQgaWYgcHJl c2VudCB0aW1lIHdpdGhpbiBhbGxvd2VkLiAqLwogCQkJaWYgKHRtcC0+Y190aW1lIDw9IG5vdykg ewogCQkJCS8qCi0JCQkJICogQ29uc3VtZXIgdG9sZCB1cyB0aGUgY2FsbG91dCBtYXkgYmUgcnVu Ci0JCQkJICogZGlyZWN0bHkgZnJvbSBoYXJkd2FyZSBpbnRlcnJ1cHQgY29udGV4dC4KKwkJCQkg KiBDb25zdW1lciB0b2xkIHVzIHRoZSBjYWxsb3V0IG1heSBiZQorCQkJCSAqIHJ1biBkaXJlY3Rs eSBmcm9tIHRoZSBoYXJkd2FyZQorCQkJCSAqIGludGVycnVwdCBjb250ZXh0OgogCQkJCSAqLwot CQkJCWlmICh0bXAtPmNfaWZsYWdzICYgQ0FMTE9VVF9ESVJFQ1QpIHsKLSNpZmRlZiBDQUxMT1VU X1BST0ZJTElORwotCQkJCQkrK2RlcHRoX2RpcjsKLSNlbmRpZgotCQkJCQljY19leGVjX25leHQo Y2MpID0KLQkJCQkJICAgIExJU1RfTkVYVCh0bXAsIGNfbGlua3MubGUpOwotCQkJCQljYy0+Y2Nf YnVja2V0ID0gZmlyc3RiICYgY2FsbHdoZWVsbWFzazsKLQkJCQkJTElTVF9SRU1PVkUodG1wLCBj X2xpbmtzLmxlKTsKLQkJCQkJc29mdGNsb2NrX2NhbGxfY2ModG1wLCBjYywKLSNpZmRlZiBDQUxM T1VUX1BST0ZJTElORwotCQkJCQkgICAgJm1wY2FsbHNfZGlyLCAmbG9ja2NhbGxzX2RpciwgTlVM TCwKLSNlbmRpZgotCQkJCQkgICAgMSk7Ci0JCQkJCXRtcCA9IGNjX2V4ZWNfbmV4dChjYyk7Ci0J CQkJCWNjX2V4ZWNfbmV4dChjYykgPSBOVUxMOworCQkJCWlmICh0bXAtPmNfZmxhZ3MgJiBDQUxM T1VUX0RJUkVDVCkgeworCQkJCQlzb2Z0Y2xvY2tfY2FsbF9jYyh0bXAsIGNjLCAxKTsKIAkJCQl9 IGVsc2UgewotCQkJCQl0bXBuID0gTElTVF9ORVhUKHRtcCwgY19saW5rcy5sZSk7Ci0JCQkJCUxJ U1RfUkVNT1ZFKHRtcCwgY19saW5rcy5sZSk7CiAJCQkJCVRBSUxRX0lOU0VSVF9UQUlMKCZjYy0+ Y2NfZXhwaXJlcSwKIAkJCQkJICAgIHRtcCwgY19saW5rcy50cWUpOwotCQkJCQl0bXAtPmNfaWZs YWdzIHw9IENBTExPVVRfUFJPQ0VTU0VEOwotCQkJCQl0bXAgPSB0bXBuOworCQkJCQl0bXAtPmNf ZmxhZ3MgfD0gQ0FMTE9VVF9QUk9DRVNTRUQ7CiAJCQkJfQogCQkJCWNvbnRpbnVlOwogCQkJfQor CisJCQkvKiBpbnNlcnQgY2FsbG91dCBpbnRvIHRlbXBvcmFyeSBsaXN0ICovCisJCQlMSVNUX0lO U0VSVF9IRUFEKCZjYy0+Y2NfdG1wbGlzdCwgdG1wLCBjX2xpbmtzLmxlKTsKKwkJCQogCQkJLyog U2tpcCBldmVudHMgZnJvbSBkaXN0YW50IGZ1dHVyZS4gKi8KIAkJCWlmICh0bXAtPmNfdGltZSA+ PSBtYXgpCi0JCQkJZ290byBuZXh0OworCQkJCWNvbnRpbnVlOworCiAJCQkvKgogCQkJICogRXZl bnQgbWluaW1hbCB0aW1lIGlzIGJpZ2dlciB0aGFuIHByZXNlbnQgbWF4aW1hbAogCQkJICogdGlt ZSwgc28gaXQgY2Fubm90IGJlIGFnZ3JlZ2F0ZWQuCiAJCQkgKi8KIAkJCWlmICh0bXAtPmNfdGlt ZSA+IGxhc3QpIHsKIAkJCQlsYXN0YiA9IG5vd2I7Ci0JCQkJZ290byBuZXh0OworCQkJCWNvbnRp bnVlOwogCQkJfQogCQkJLyogVXBkYXRlIGZpcnN0IGFuZCBsYXN0IHRpbWUsIHJlc3BlY3Rpbmcg dGhpcyBldmVudC4gKi8KIAkJCWlmICh0bXAtPmNfdGltZSA8IGZpcnN0KQogCQkJCWZpcnN0ID0g dG1wLT5jX3RpbWU7CiAJCQl0bXBfbWF4ID0gdG1wLT5jX3RpbWUgKyB0bXAtPmNfcHJlY2lzaW9u OwogCQkJaWYgKHRtcF9tYXggPCBsYXN0KQogCQkJCWxhc3QgPSB0bXBfbWF4OwotbmV4dDoKLQkJ CXRtcCA9IExJU1RfTkVYVCh0bXAsIGNfbGlua3MubGUpOwogCQl9CisKKwkJLyogUHV0IHRlbXBv cmFyeSBsaXN0IGJhY2sgaW50byB0aGUgbWFpbiBidWNrZXQgKi8KKwkJTElTVF9TV0FQKHNjLCAm Y2MtPmNjX3RtcGxpc3QsIGNhbGxvdXQsIGNfbGlua3MubGUpOworCQkKIAkJLyogUHJvY2VlZCB3 aXRoIHRoZSBuZXh0IGJ1Y2tldC4gKi8KIAkJZmlyc3RiKys7CisKIAkJLyoKIAkJICogU3RvcCBp ZiB3ZSBsb29rZWQgYWZ0ZXIgcHJlc2VudCB0aW1lIGFuZCBmb3VuZAogCQkgKiBzb21lIGV2ZW50 IHdlIGNhbid0IGV4ZWN1dGUgYXQgbm93LgpAQCAtNTQwLDE0ICs2NDcsMTMgQEAKIAljcHVfbmV3 X2NhbGxvdXQoY3VyY3B1LCBsYXN0LCBmaXJzdCk7CiAjZW5kaWYKICNpZmRlZiBDQUxMT1VUX1BS T0ZJTElORwotCWF2Z19kZXB0aF9kaXIgKz0gKGRlcHRoX2RpciAqIDEwMDAgLSBhdmdfZGVwdGhf ZGlyKSA+PiA4OwotCWF2Z19tcGNhbGxzX2RpciArPSAobXBjYWxsc19kaXIgKiAxMDAwIC0gYXZn X21wY2FsbHNfZGlyKSA+PiA4OwotCWF2Z19sb2NrY2FsbHNfZGlyICs9IChsb2NrY2FsbHNfZGly ICogMTAwMCAtIGF2Z19sb2NrY2FsbHNfZGlyKSA+PiA4OworCWNhbGxvdXRfdXBkYXRlX3N0YXRz KGNjLCAxKTsKICNlbmRpZgotCW10eF91bmxvY2tfc3Bpbl9mbGFncygmY2MtPmNjX2xvY2ssIE1U WF9RVUlFVCk7CisJQ0NfVU5MT0NLKGNjKTsKIAkvKgotCSAqIHN3aV9zY2hlZCBhY3F1aXJlcyB0 aGUgdGhyZWFkIGxvY2ssIHNvIHdlIGRvbid0IHdhbnQgdG8gY2FsbCBpdAotCSAqIHdpdGggY2Nf bG9jayBoZWxkOyBpbmNvcnJlY3QgbG9ja2luZyBvcmRlci4KKwkgKiAic3dpX3NjaGVkKCkiIGFj cXVpcmVzIHRoZSB0aHJlYWQgbG9jayBhbmQgd2UgZG9uJ3Qgd2FudCB0bworCSAqIGNhbGwgaXQg aGF2aW5nIGNjX2xvY2sgaGVsZCBiZWNhdXNlIGl0IGxlYWRzIHRvIGEgbG9ja2luZworCSAqIG9y ZGVyIHJldmVyc2FsIGlzc3VlLgogCSAqLwogCWlmICghVEFJTFFfRU1QVFkoJmNjLT5jY19leHBp cmVxKSkKIAkJc3dpX3NjaGVkKGNjLT5jY19jb29raWUsIDApOwpAQCAtNTYzLDggKzY2OSw3IEBA CiAJCWNwdSA9IGMtPmNfY3B1OwogI2lmZGVmIFNNUAogCQlpZiAoY3B1ID09IENQVUJMT0NLKSB7 Ci0JCQl3aGlsZSAoYy0+Y19jcHUgPT0gQ1BVQkxPQ0spCi0JCQkJY3B1X3NwaW53YWl0KCk7CisJ CQljcHVfc3BpbndhaXQoKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAjZW5kaWYKQEAgLTU3NywzMiAr NjgyLDU2IEBACiAJcmV0dXJuIChjYyk7CiB9CiAKLXN0YXRpYyB2b2lkCi1jYWxsb3V0X2NjX2Fk ZChzdHJ1Y3QgY2FsbG91dCAqYywgc3RydWN0IGNhbGxvdXRfY3B1ICpjYywKLSAgICBzYmludGlt ZV90IHNidCwgc2JpbnRpbWVfdCBwcmVjaXNpb24sIHZvaWQgKCpmdW5jKSh2b2lkICopLAotICAg IHZvaWQgKmFyZywgaW50IGNwdSwgaW50IGZsYWdzKQorc3RhdGljIHN0cnVjdCBjYWxsb3V0X2Nw dSAqCitjYWxsb3V0X2NjX2FkZF9sb2NrZWQoc3RydWN0IGNhbGxvdXQgKmMsIHN0cnVjdCBjYWxs b3V0X2NwdSAqY2MsCisgICAgc3RydWN0IGNhbGxvdXRfYXJncyAqY29hKQogewotCWludCBidWNr ZXQ7CisjaWZuZGVmIE5PX0VWRU5UVElNRVJTCisJc2JpbnRpbWVfdCBzYnQ7CisjZW5kaWYKKwl1 X2ludCBidWNrZXQ7CiAKIAlDQ19MT0NLX0FTU0VSVChjYyk7Ci0JaWYgKHNidCA8IGNjLT5jY19s YXN0c2NhbikKLQkJc2J0ID0gY2MtPmNjX2xhc3RzY2FuOwotCWMtPmNfYXJnID0gYXJnOwotCWMt PmNfaWZsYWdzIHw9IENBTExPVVRfUEVORElORzsKLQljLT5jX2lmbGFncyAmPSB+Q0FMTE9VVF9Q Uk9DRVNTRUQ7Ci0JYy0+Y19mbGFncyB8PSBDQUxMT1VUX0FDVElWRTsKLQlpZiAoZmxhZ3MgJiBD X0RJUkVDVF9FWEVDKQotCQljLT5jX2lmbGFncyB8PSBDQUxMT1VUX0RJUkVDVDsKLQljLT5jX2Z1 bmMgPSBmdW5jOwotCWMtPmNfdGltZSA9IHNidDsKLQljLT5jX3ByZWNpc2lvbiA9IHByZWNpc2lv bjsKKworCS8qIHVwZGF0ZSBmbGFncyBiZWZvcmUgc3dhcHBpbmcgbG9ja3MsIGlmIGFueSAqLwor CWMtPmNfZmxhZ3MgJj0gfihDQUxMT1VUX1BST0NFU1NFRCB8IENBTExPVVRfRElSRUNUIHwgQ0FM TE9VVF9ERUZSRVNUQVJUKTsKKwlpZiAoY29hLT5mbGFncyAmIENfRElSRUNUX0VYRUMpCisJCWMt PmNfZmxhZ3MgfD0gKENBTExPVVRfQUNUSVZFIHwgQ0FMTE9VVF9QRU5ESU5HIHwgQ0FMTE9VVF9E SVJFQ1QpOworCWVsc2UKKwkJYy0+Y19mbGFncyB8PSAoQ0FMTE9VVF9BQ1RJVkUgfCBDQUxMT1VU X1BFTkRJTkcpOworCisjaWZkZWYgU01QCisJLyogb25seSBzZXQgdGhlICJjX2NwdSIgaWYgdGhl IENQVSBudW1iZXIgY2hhbmdlZCBhbmQgaXMgdmFsaWQgKi8KKwlpZiAoYy0+Y19jcHUgIT0gY29h LT5jcHUgJiYgY29hLT5jcHUgPiBDUFVCTE9DSyAmJgorCSAgICBjb2EtPmNwdSA8PSBtcF9tYXhp ZCAmJiAhQ1BVX0FCU0VOVChjb2EtPmNwdSkpIHsKKwkJLyoKKwkJICogQXZvaWQgaW50ZXJydXB0 cyBhbmQgcHJlZW1wdGlvbiBmaXJpbmcgYWZ0ZXIgdGhlCisJCSAqIGNhbGxvdXQgQ1BVIGlzIGJs b2NrZWQgaW4gb3JkZXIgdG8gYXZvaWQgZGVhZGxvY2tzCisJCSAqIGFzIHRoZSBuZXcgdGhyZWFk IG1heSBiZSB3aWxsaW5nIHRvIGFjcXVpcmUgdGhlCisJCSAqIGNhbGxvdXQgQ1BVIGxvY2s6CisJ CSAqLworCQljLT5jX2NwdSA9IENQVUJMT0NLOworCQlzcGlubG9ja19lbnRlcigpOworCQlDQ19V TkxPQ0soY2MpOworCQljYyA9IENDX0NQVShjb2EtPmNwdSk7CisJCUNDX0xPQ0soY2MpOworCQlz cGlubG9ja19leGl0KCk7CisJCWMtPmNfY3B1ID0gY29hLT5jcHU7CisJfQorI2VuZGlmCisJaWYg KGNvYS0+dGltZSA8IGNjLT5jY19sYXN0c2NhbikKKwkJY29hLT50aW1lID0gY2MtPmNjX2xhc3Rz Y2FuOworCWMtPmNfYXJnID0gY29hLT5hcmc7CisJYy0+Y19mdW5jID0gY29hLT5mdW5jOworCWMt PmNfdGltZSA9IGNvYS0+dGltZTsKKwljLT5jX3ByZWNpc2lvbiA9IGNvYS0+cHJlY2lzaW9uOwor CiAJYnVja2V0ID0gY2FsbG91dF9nZXRfYnVja2V0KGMtPmNfdGltZSk7CiAJQ1RSMyhLVFJfQ0FM TE9VVCwgInByZWNpc2lvbiBzZXQgZm9yICVwOiAlZC4lMDh4IiwKIAkgICAgYywgKGludCkoYy0+ Y19wcmVjaXNpb24gPj4gMzIpLAogCSAgICAodV9pbnQpKGMtPmNfcHJlY2lzaW9uICYgMHhmZmZm ZmZmZikpOwogCUxJU1RfSU5TRVJUX0hFQUQoJmNjLT5jY19jYWxsd2hlZWxbYnVja2V0XSwgYywg Y19saW5rcy5sZSk7Ci0JaWYgKGNjLT5jY19idWNrZXQgPT0gYnVja2V0KQotCQljY19leGVjX25l eHQoY2MpID0gYzsKKwogI2lmbmRlZiBOT19FVkVOVFRJTUVSUwogCS8qCiAJICogSW5mb3JtIHRo ZSBldmVudHRpbWVycyg0KSBzdWJzeXN0ZW0gdGhlcmUncyBhIG5ldyBjYWxsb3V0CkBAIC02MTMs MTA1ICs3NDIsOTcgQEAKIAlzYnQgPSBjLT5jX3RpbWUgKyBjLT5jX3ByZWNpc2lvbjsKIAlpZiAo c2J0IDwgY2MtPmNjX2ZpcnN0ZXZlbnQpIHsKIAkJY2MtPmNjX2ZpcnN0ZXZlbnQgPSBzYnQ7Ci0J CWNwdV9uZXdfY2FsbG91dChjcHUsIHNidCwgYy0+Y190aW1lKTsKKwkJY3B1X25ld19jYWxsb3V0 KGMtPmNfY3B1LCBzYnQsIGMtPmNfdGltZSk7CiAJfQogI2VuZGlmCisJcmV0dXJuIChjYyk7CiB9 CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgaW5saW5lIHZvaWQKIGNhbGxvdXRfY2NfZGVsKHN0cnVj dCBjYWxsb3V0ICpjLCBzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjKQogewogCi0JaWYgKChjLT5jX2lm bGFncyAmIENBTExPVVRfTE9DQUxfQUxMT0MpID09IDApCi0JCXJldHVybjsKIAljLT5jX2Z1bmMg PSBOVUxMOwogCVNMSVNUX0lOU0VSVF9IRUFEKCZjYy0+Y2NfY2FsbGZyZWUsIGMsIGNfbGlua3Mu c2xlKTsKIH0KIAotc3RhdGljIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogc29mdGNsb2NrX2Nh bGxfY2Moc3RydWN0IGNhbGxvdXQgKmMsIHN0cnVjdCBjYWxsb3V0X2NwdSAqY2MsCi0jaWZkZWYg Q0FMTE9VVF9QUk9GSUxJTkcKLSAgICBpbnQgKm1wY2FsbHMsIGludCAqbG9ja2NhbGxzLCBpbnQg KmdjYWxscywKLSNlbmRpZgotICAgIGludCBkaXJlY3QpCisgICAgY29uc3QgaW50IGRpcmVjdCkK IHsKLQlzdHJ1Y3Qgcm1fcHJpb3RyYWNrZXIgdHJhY2tlcjsKLQl2b2lkICgqY19mdW5jKSh2b2lk ICopOworCWNhbGxvdXRfZnVuY190ICpjX2Z1bmM7CiAJdm9pZCAqY19hcmc7Ci0Jc3RydWN0IGxv Y2tfY2xhc3MgKmNsYXNzOwogCXN0cnVjdCBsb2NrX29iamVjdCAqY19sb2NrOwotCXVpbnRwdHJf dCBsb2NrX3N0YXR1czsKLQlpbnQgY19pZmxhZ3M7Ci0jaWZkZWYgU01QCi0Jc3RydWN0IGNhbGxv dXRfY3B1ICpuZXdfY2M7Ci0Jdm9pZCAoKm5ld19mdW5jKSh2b2lkICopOwotCXZvaWQgKm5ld19h cmc7Ci0JaW50IGZsYWdzLCBuZXdfY3B1OwotCXNiaW50aW1lX3QgbmV3X3ByZWMsIG5ld190aW1l OwotI2VuZGlmCisJaW50IGNfZmxhZ3M7CiAjaWYgZGVmaW5lZChESUFHTk9TVElDKSB8fCBkZWZp bmVkKENBTExPVVRfUFJPRklMSU5HKSAKIAlzYmludGltZV90IHNidDEsIHNidDI7CiAJc3RydWN0 IHRpbWVzcGVjIHRzMjsKIAlzdGF0aWMgc2JpbnRpbWVfdCBtYXhkdCA9IDIgKiBTQlRfMU1TOwkv KiAyIG1zZWMgKi8KIAlzdGF0aWMgdGltZW91dF90ICpsYXN0ZnVuYzsKICNlbmRpZgogCi0JS0FT U0VSVCgoYy0+Y19pZmxhZ3MgJiBDQUxMT1VUX1BFTkRJTkcpID09IENBTExPVVRfUEVORElORywK LQkgICAgKCJzb2Z0Y2xvY2tfY2FsbF9jYzogcGVuZCAlcCAleCIsIGMsIGMtPmNfaWZsYWdzKSk7 Ci0JS0FTU0VSVCgoYy0+Y19mbGFncyAmIENBTExPVVRfQUNUSVZFKSA9PSBDQUxMT1VUX0FDVElW RSwKLQkgICAgKCJzb2Z0Y2xvY2tfY2FsbF9jYzogYWN0ICVwICV4IiwgYywgYy0+Y19mbGFncykp OwotCWNsYXNzID0gKGMtPmNfbG9jayAhPSBOVUxMKSA/IExPQ0tfQ0xBU1MoYy0+Y19sb2NrKSA6 IE5VTEw7Ci0JbG9ja19zdGF0dXMgPSAwOwotCWlmIChjLT5jX2ZsYWdzICYgQ0FMTE9VVF9TSEFS RURMT0NLKSB7Ci0JCWlmIChjbGFzcyA9PSAmbG9ja19jbGFzc19ybSkKLQkJCWxvY2tfc3RhdHVz ID0gKHVpbnRwdHJfdCkmdHJhY2tlcjsKLQkJZWxzZQotCQkJbG9ja19zdGF0dXMgPSAxOwotCX0K KwlLQVNTRVJUKChjLT5jX2ZsYWdzICYgKENBTExPVVRfUEVORElORyB8IENBTExPVVRfQUNUSVZF KSkgPT0KKwkgICAgKENBTExPVVRfUEVORElORyB8IENBTExPVVRfQUNUSVZFKSwKKwkgICAgKCJz b2Z0Y2xvY2tfY2FsbF9jYzogcGVuZHxhY3QgJXAgJXgiLCBjLCBjLT5jX2ZsYWdzKSk7CisKIAlj X2xvY2sgPSBjLT5jX2xvY2s7CiAJY19mdW5jID0gYy0+Y19mdW5jOwogCWNfYXJnID0gYy0+Y19h cmc7Ci0JY19pZmxhZ3MgPSBjLT5jX2lmbGFnczsKLQlpZiAoYy0+Y19pZmxhZ3MgJiBDQUxMT1VU X0xPQ0FMX0FMTE9DKQotCQljLT5jX2lmbGFncyA9IENBTExPVVRfTE9DQUxfQUxMT0M7Ci0JZWxz ZQotCQljLT5jX2lmbGFncyAmPSB+Q0FMTE9VVF9QRU5ESU5HOwotCQorCWNfZmxhZ3MgPSBjLT5j X2ZsYWdzOworCisJLyogcmVtb3ZlIHBlbmRpbmcgYml0ICovCisJYy0+Y19mbGFncyAmPSB+Q0FM TE9VVF9QRU5ESU5HOworCisJLyogcmVzZXQgb3VyIGxvY2FsIHN0YXRlICovCiAJY2NfZXhlY19j dXJyKGNjLCBkaXJlY3QpID0gYzsKLQljY19leGVjX2NhbmNlbChjYywgZGlyZWN0KSA9IGZhbHNl OwotCUNDX1VOTE9DSyhjYyk7CisJY2NfZXhlY19yZXN0YXJ0KGNjLCBkaXJlY3QpID0gZmFsc2U7 CisJY2NfZXhlY19kcmFpbl9mbihjYywgZGlyZWN0KSA9IE5VTEw7CisJY2NfZXhlY19kcmFpbl9h cmcoY2MsIGRpcmVjdCkgPSBOVUxMOworCiAJaWYgKGNfbG9jayAhPSBOVUxMKSB7Ci0JCWNsYXNz LT5sY19sb2NrKGNfbG9jaywgbG9ja19zdGF0dXMpOworCQljY19leGVjX2NhbmNlbChjYywgZGly ZWN0KSA9IGZhbHNlOworCQlDQ19VTkxPQ0soY2MpOworCisJCS8qIHVubG9ja2VkIHJlZ2lvbiBm b3Igc3dpdGNoaW5nIGxvY2tzICovCisKKwkJY2FsbG91dF9sb2NrX2NsaWVudChjX2ZsYWdzLCBj X2xvY2spOworCiAJCS8qCi0JCSAqIFRoZSBjYWxsb3V0IG1heSBoYXZlIGJlZW4gY2FuY2VsbGVk Ci0JCSAqIHdoaWxlIHdlIHN3aXRjaGVkIGxvY2tzLgorCQkgKiBDaGVjayBpZiB0aGUgY2FsbG91 dCBtYXkgaGF2ZSBiZWVuIGNhbmNlbGxlZCB3aGlsZQorCQkgKiB3ZSB3ZXJlIHN3aXRjaGluZyBs b2Nrcy4gRXZlbiB0aG91Z2ggdGhlIGNhbGxvdXQgaXMKKwkJICogc3BlY2lmeWluZyBhIGxvY2ss IGl0IG1pZ2h0IG5vdCBiZSBjZXJ0YWluIHRoaXMKKwkJICogbG9jayBpcyBsb2NrZWQgd2hlbiBz dGFydGluZyBhbmQgc3RvcHBpbmcgY2FsbG91dHMuCiAJCSAqLworCQlDQ19MT0NLKGNjKTsKIAkJ aWYgKGNjX2V4ZWNfY2FuY2VsKGNjLCBkaXJlY3QpKSB7Ci0JCQljbGFzcy0+bGNfdW5sb2NrKGNf bG9jayk7Ci0JCQlnb3RvIHNraXA7CisJCQljYWxsb3V0X3VubG9ja19jbGllbnQoY19mbGFncywg Y19sb2NrKTsKKwkJCWdvdG8gc2tpcF9jY19sb2NrZWQ7CiAJCX0KLQkJLyogVGhlIGNhbGxvdXQg Y2Fubm90IGJlIHN0b3BwZWQgbm93LiAqLwotCQljY19leGVjX2NhbmNlbChjYywgZGlyZWN0KSA9 IHRydWU7CiAJCWlmIChjX2xvY2sgPT0gJkdpYW50LmxvY2tfb2JqZWN0KSB7CiAjaWZkZWYgQ0FM TE9VVF9QUk9GSUxJTkcKLQkJCSgqZ2NhbGxzKSsrOworCQkJY2NfZXhlY19nY2FsbHMoY2MsIGRp cmVjdCkrKzsKICNlbmRpZgogCQkJQ1RSMyhLVFJfQ0FMTE9VVCwgImNhbGxvdXQgZ2lhbnQgJXAg ZnVuYyAlcCBhcmcgJXAiLAogCQkJICAgIGMsIGNfZnVuYywgY19hcmcpOwogCQl9IGVsc2Ugewog I2lmZGVmIENBTExPVVRfUFJPRklMSU5HCi0JCQkoKmxvY2tjYWxscykrKzsKKwkJCWNjX2V4ZWNf bG9ja2NhbGxzKGNjLCBkaXJlY3QpKys7CiAjZW5kaWYKIAkJCUNUUjMoS1RSX0NBTExPVVQsICJj YWxsb3V0IGxvY2sgJXAgZnVuYyAlcCBhcmcgJXAiLAogCQkJICAgIGMsIGNfZnVuYywgY19hcmcp OwogCQl9CiAJfSBlbHNlIHsKICNpZmRlZiBDQUxMT1VUX1BST0ZJTElORwotCQkoKm1wY2FsbHMp Kys7CisJCWNjX2V4ZWNfbXBjYWxscyhjYywgZGlyZWN0KSsrOwogI2VuZGlmCiAJCUNUUjMoS1RS X0NBTExPVVQsICJjYWxsb3V0ICVwIGZ1bmMgJXAgYXJnICVwIiwKIAkJICAgIGMsIGNfZnVuYywg Y19hcmcpOwogCX0KKwkvKiBUaGUgY2FsbG91dCBjYW5ub3QgYmUgc3RvcHBlZCBub3chICovCisJ Y2NfZXhlY19jYW5jZWwoY2MsIGRpcmVjdCkgPSB0cnVlOworCUNDX1VOTE9DSyhjYyk7CisKKwkv KiB1bmxvY2tlZCByZWdpb24gKi8KIAlLVFJfU1RBVEUzKEtUUl9TQ0hFRCwgImNhbGxvdXQiLCBj Yy0+Y2Nfa3RyX2V2ZW50X25hbWUsICJydW5uaW5nIiwKIAkgICAgImZ1bmM6JXAiLCBjX2Z1bmMs ICJhcmc6JXAiLCBjX2FyZywgImRpcmVjdDolZCIsIGRpcmVjdCk7CiAjaWYgZGVmaW5lZChESUFH Tk9TVElDKSB8fCBkZWZpbmVkKENBTExPVVRfUFJPRklMSU5HKQpAQCAtNzM4LDg1ICs4NTksNDYg QEAKICNlbmRpZgogCUtUUl9TVEFURTAoS1RSX1NDSEVELCAiY2FsbG91dCIsIGNjLT5jY19rdHJf ZXZlbnRfbmFtZSwgImlkbGUiKTsKIAlDVFIxKEtUUl9DQUxMT1VULCAiY2FsbG91dCAlcCBmaW5p c2hlZCIsIGMpOwotCWlmICgoY19pZmxhZ3MgJiBDQUxMT1VUX1JFVFVSTlVOTE9DS0VEKSA9PSAw KQotCQljbGFzcy0+bGNfdW5sb2NrKGNfbG9jayk7Ci1za2lwOgorCisJLyoKKwkgKiBBdCB0aGlz IHBvaW50IHRoZSBjYWxsYmFjayBzdHJ1Y3R1cmUgbWlnaHQgaGF2ZSBiZWVuIGZyZWVkLAorCSAq IHNvIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHByZXZpb3VzbHkgY29waWVkIHZhbHVlIG9mCisJICog ImMtPmNfZmxhZ3MiOgorCSAqLworCWlmICgoY19mbGFncyAmIENBTExPVVRfUkVUVVJOVU5MT0NL RUQpID09IDApCisJCWNhbGxvdXRfdW5sb2NrX2NsaWVudChjX2ZsYWdzLCBjX2xvY2spOworCiAJ Q0NfTE9DSyhjYyk7CisKK3NraXBfY2NfbG9ja2VkOgogCUtBU1NFUlQoY2NfZXhlY19jdXJyKGNj LCBkaXJlY3QpID09IGMsICgibWlzaGFuZGxlZCBjY19jdXJyIikpOwogCWNjX2V4ZWNfY3Vycihj YywgZGlyZWN0KSA9IE5VTEw7Ci0JaWYgKGNjX2V4ZWNfd2FpdGluZyhjYywgZGlyZWN0KSkgewor CisJLyogQ2hlY2sgaWYgdGhlcmUgaXMgYW55dGhpbmcgd2hpY2ggbmVlZHMgZHJhaW5pbmcgKi8K KwlpZiAoY2NfZXhlY19kcmFpbl9mbihjYywgZGlyZWN0KSAhPSBOVUxMKSB7CiAJCS8qCi0JCSAq IFRoZXJlIGlzIHNvbWVvbmUgd2FpdGluZyBmb3IgdGhlCi0JCSAqIGNhbGxvdXQgdG8gY29tcGxl dGUuCi0JCSAqIElmIHRoZSBjYWxsb3V0IHdhcyBzY2hlZHVsZWQgZm9yCi0JCSAqIG1pZ3JhdGlv biBqdXN0IGNhbmNlbCBpdC4KKwkJICogVW5sb2NrIHRoZSBDUFUgY2FsbG91dCBsYXN0LCBzbyB0 aGF0IGFueSB1c2Ugb2YKKwkJICogc3RydWN0dXJlcyBiZWxvbmdpbmcgdG8gdGhlIGNhbGxvdXQg YXJlIGNvbXBsZXRlOgogCQkgKi8KLQkJaWYgKGNjX2NjZV9taWdyYXRpbmcoY2MsIGRpcmVjdCkp IHsKLQkJCWNjX2NjZV9jbGVhbnVwKGNjLCBkaXJlY3QpOwotCi0JCQkvKgotCQkJICogSXQgc2hv dWxkIGJlIGFzc2VydCBoZXJlIHRoYXQgdGhlIGNhbGxvdXQgaXMgbm90Ci0JCQkgKiBkZXN0cm95 ZWQgYnV0IHRoYXQgaXMgbm90IGVhc3kuCi0JCQkgKi8KLQkJCWMtPmNfaWZsYWdzICY9IH5DQUxM T1VUX0RGUk1JR1JBVElPTjsKLQkJfQotCQljY19leGVjX3dhaXRpbmcoY2MsIGRpcmVjdCkgPSBm YWxzZTsKIAkJQ0NfVU5MT0NLKGNjKTsKLQkJd2FrZXVwKCZjY19leGVjX3dhaXRpbmcoY2MsIGRp cmVjdCkpOworCQkvKiBjYWxsIGRyYWluIGZ1bmN0aW9uIHVubG9ja2VkICovCisJCWNjX2V4ZWNf ZHJhaW5fZm4oY2MsIGRpcmVjdCkoCisJCSAgICBjY19leGVjX2RyYWluX2FyZyhjYywgZGlyZWN0 KSk7CiAJCUNDX0xPQ0soY2MpOwotCX0gZWxzZSBpZiAoY2NfY2NlX21pZ3JhdGluZyhjYywgZGly ZWN0KSkgewotCQlLQVNTRVJUKChjX2lmbGFncyAmIENBTExPVVRfTE9DQUxfQUxMT0MpID09IDAs Ci0JCSAgICAoIk1pZ3JhdGluZyBsZWdhY3kgY2FsbG91dCAlcCIsIGMpKTsKLSNpZmRlZiBTTVAK LQkJLyoKLQkJICogSWYgdGhlIGNhbGxvdXQgd2FzIHNjaGVkdWxlZCBmb3IKLQkJICogbWlncmF0 aW9uIGp1c3QgcGVyZm9ybSBpdCBub3cuCi0JCSAqLwotCQluZXdfY3B1ID0gY2NfbWlncmF0aW9u X2NwdShjYywgZGlyZWN0KTsKLQkJbmV3X3RpbWUgPSBjY19taWdyYXRpb25fdGltZShjYywgZGly ZWN0KTsKLQkJbmV3X3ByZWMgPSBjY19taWdyYXRpb25fcHJlYyhjYywgZGlyZWN0KTsKLQkJbmV3 X2Z1bmMgPSBjY19taWdyYXRpb25fZnVuYyhjYywgZGlyZWN0KTsKLQkJbmV3X2FyZyA9IGNjX21p Z3JhdGlvbl9hcmcoY2MsIGRpcmVjdCk7Ci0JCWNjX2NjZV9jbGVhbnVwKGNjLCBkaXJlY3QpOwot Ci0JCS8qCi0JCSAqIEl0IHNob3VsZCBiZSBhc3NlcnQgaGVyZSB0aGF0IHRoZSBjYWxsb3V0IGlz IG5vdCBkZXN0cm95ZWQKLQkJICogYnV0IHRoYXQgaXMgbm90IGVhc3kuCi0JCSAqCi0JCSAqIEFz IGZpcnN0IHRoaW5nLCBoYW5kbGUgZGVmZXJyZWQgY2FsbG91dCBzdG9wcy4KLQkJICovCi0JCWlm ICghY2FsbG91dF9taWdyYXRpbmcoYykpIHsKLQkJCUNUUjMoS1RSX0NBTExPVVQsCi0JCQkgICAg ICJkZWZlcnJlZCBjYW5jZWxsZWQgJXAgZnVuYyAlcCBhcmcgJXAiLAotCQkJICAgICBjLCBuZXdf ZnVuYywgbmV3X2FyZyk7Ci0JCQljYWxsb3V0X2NjX2RlbChjLCBjYyk7Ci0JCQlyZXR1cm47CisJ fSBlbHNlIGlmIChjX2ZsYWdzICYgQ0FMTE9VVF9MT0NBTF9BTExPQykgeworCQkvKiByZXR1cm4g Y2FsbG91dCBiYWNrIHRvIGZyZWVsaXN0ICovCisJCWNhbGxvdXRfY2NfZGVsKGMsIGNjKTsKKwl9 IGVsc2UgaWYgKGNjX2V4ZWNfcmVzdGFydChjYywgZGlyZWN0KSkgeworCQlzdHJ1Y3QgY2FsbG91 dF9jcHUgKm5ld19jYzsKKwkJLyogW3JlLV1zY2hlZHVsZSBjYWxsb3V0LCBpZiBhbnkgKi8KKwkJ bmV3X2NjID0gY2FsbG91dF9jY19hZGRfbG9ja2VkKGMsIGNjLAorCQkgICAgJmNjX2V4ZWNfcmVz dGFydF9hcmdzKGNjLCBkaXJlY3QpKTsKKwkJaWYgKG5ld19jYyAhPSBjYykgeworCQkJLyogc3dp dGNoIGxvY2tzIGJhY2sgYWdhaW4gKi8KKwkJCUNDX1VOTE9DSyhuZXdfY2MpOworCQkJQ0NfTE9D SyhjYyk7CiAJCX0KLQkJYy0+Y19pZmxhZ3MgJj0gfkNBTExPVVRfREZSTUlHUkFUSU9OOwotCi0J CW5ld19jYyA9IGNhbGxvdXRfY3B1X3N3aXRjaChjLCBjYywgbmV3X2NwdSk7Ci0JCWZsYWdzID0g KGRpcmVjdCkgPyBDX0RJUkVDVF9FWEVDIDogMDsKLQkJY2FsbG91dF9jY19hZGQoYywgbmV3X2Nj LCBuZXdfdGltZSwgbmV3X3ByZWMsIG5ld19mdW5jLAotCQkgICAgbmV3X2FyZywgbmV3X2NwdSwg ZmxhZ3MpOwotCQlDQ19VTkxPQ0sobmV3X2NjKTsKLQkJQ0NfTE9DSyhjYyk7Ci0jZWxzZQotCQlw YW5pYygibWlncmF0aW9uIHNob3VsZCBub3QgaGFwcGVuIik7Ci0jZW5kaWYKIAl9Ci0JLyoKLQkg KiBJZiB0aGUgY3VycmVudCBjYWxsb3V0IGlzIGxvY2FsbHkgYWxsb2NhdGVkIChmcm9tCi0JICog dGltZW91dCg5KSkgdGhlbiBwdXQgaXQgb24gdGhlIGZyZWVsaXN0LgotCSAqCi0JICogTm90ZTog d2UgbmVlZCB0byBjaGVjayB0aGUgY2FjaGVkIGNvcHkgb2YgY19pZmxhZ3MgYmVjYXVzZQotCSAq IGlmIGl0IHdhcyBub3QgbG9jYWwsIHRoZW4gaXQncyBub3Qgc2FmZSB0byBkZXJlZiB0aGUKLQkg KiBjYWxsb3V0IHBvaW50ZXIuCi0JICovCi0JS0FTU0VSVCgoY19pZmxhZ3MgJiBDQUxMT1VUX0xP Q0FMX0FMTE9DKSA9PSAwIHx8Ci0JICAgIGMtPmNfaWZsYWdzID09IENBTExPVVRfTE9DQUxfQUxM T0MsCi0JICAgICgiY29ycnVwdGVkIGNhbGxvdXQiKSk7Ci0JaWYgKGNfaWZsYWdzICYgQ0FMTE9V VF9MT0NBTF9BTExPQykKLQkJY2FsbG91dF9jY19kZWwoYywgY2MpOwogfQogCiAvKgpAQCAtODQw LDI4ICs5MjIsMTggQEAKIHsKIAlzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjOwogCXN0cnVjdCBjYWxs b3V0ICpjOwotI2lmZGVmIENBTExPVVRfUFJPRklMSU5HCi0JaW50IGRlcHRoID0gMCwgZ2NhbGxz ID0gMCwgbG9ja2NhbGxzID0gMCwgbXBjYWxscyA9IDA7Ci0jZW5kaWYKIAogCWNjID0gKHN0cnVj dCBjYWxsb3V0X2NwdSAqKWFyZzsKIAlDQ19MT0NLKGNjKTsKLQl3aGlsZSAoKGMgPSBUQUlMUV9G SVJTVCgmY2MtPmNjX2V4cGlyZXEpKSAhPSBOVUxMKSB7Ci0JCVRBSUxRX1JFTU9WRSgmY2MtPmNj X2V4cGlyZXEsIGMsIGNfbGlua3MudHFlKTsKLQkJc29mdGNsb2NrX2NhbGxfY2MoYywgY2MsCiAj aWZkZWYgQ0FMTE9VVF9QUk9GSUxJTkcKLQkJICAgICZtcGNhbGxzLCAmbG9ja2NhbGxzLCAmZ2Nh bGxzLAotI2VuZGlmCi0JCSAgICAwKTsKLSNpZmRlZiBDQUxMT1VUX1BST0ZJTElORwotCQkrK2Rl cHRoOworCWNhbGxvdXRfY2xlYXJfc3RhdHMoY2MsIDApOwogI2VuZGlmCisJd2hpbGUgKChjID0g VEFJTFFfRklSU1QoJmNjLT5jY19leHBpcmVxKSkgIT0gTlVMTCkgeworCQlUQUlMUV9SRU1PVkUo JmNjLT5jY19leHBpcmVxLCBjLCBjX2xpbmtzLnRxZSk7CisJCXNvZnRjbG9ja19jYWxsX2NjKGMs IGNjLCAwKTsKIAl9CiAjaWZkZWYgQ0FMTE9VVF9QUk9GSUxJTkcKLQlhdmdfZGVwdGggKz0gKGRl cHRoICogMTAwMCAtIGF2Z19kZXB0aCkgPj4gODsKLQlhdmdfbXBjYWxscyArPSAobXBjYWxscyAq IDEwMDAgLSBhdmdfbXBjYWxscykgPj4gODsKLQlhdmdfbG9ja2NhbGxzICs9IChsb2NrY2FsbHMg KiAxMDAwIC0gYXZnX2xvY2tjYWxscykgPj4gODsKLQlhdmdfZ2NhbGxzICs9IChnY2FsbHMgKiAx MDAwIC0gYXZnX2djYWxscykgPj4gODsKKwljYWxsb3V0X3VwZGF0ZV9zdGF0cyhjYywgMCk7CiAj ZW5kaWYKIAlDQ19VTkxPQ0soY2MpOwogfQpAQCAtODk3LDE3ICs5NjksMTkgQEAKIAkJLyogWFhY IEF0dGVtcHQgdG8gbWFsbG9jIGZpcnN0ICovCiAJCXBhbmljKCJ0aW1lb3V0IHRhYmxlIGZ1bGwi KTsKIAlTTElTVF9SRU1PVkVfSEVBRCgmY2MtPmNjX2NhbGxmcmVlLCBjX2xpbmtzLnNsZSk7Ci0J Y2FsbG91dF9yZXNldChuZXcsIHRvX3RpY2tzLCBmdG4sIGFyZyk7CiAJaGFuZGxlLmNhbGxvdXQg PSBuZXc7CiAJQ0NfVU5MT0NLKGNjKTsKIAorCWNhbGxvdXRfcmVzZXQobmV3LCB0b190aWNrcywg ZnRuLCBhcmcpOworCiAJcmV0dXJuIChoYW5kbGUpOwogfQogCiB2b2lkCiB1bnRpbWVvdXQodGlt ZW91dF90ICpmdG4sIHZvaWQgKmFyZywgc3RydWN0IGNhbGxvdXRfaGFuZGxlIGhhbmRsZSkKIHsK IAlzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjOworCWJvb2wgbWF0Y2g7CiAKIAkvKgogCSAqIENoZWNr IGZvciBhIGhhbmRsZSB0aGF0IHdhcyBpbml0aWFsaXplZApAQCAtOTE4LDE3ICs5OTIsMTMxIEBA CiAJCXJldHVybjsKIAogCWNjID0gY2FsbG91dF9sb2NrKGhhbmRsZS5jYWxsb3V0KTsKLQlpZiAo aGFuZGxlLmNhbGxvdXQtPmNfZnVuYyA9PSBmdG4gJiYgaGFuZGxlLmNhbGxvdXQtPmNfYXJnID09 IGFyZykKLQkJY2FsbG91dF9zdG9wKGhhbmRsZS5jYWxsb3V0KTsKKwltYXRjaCA9IChoYW5kbGUu Y2FsbG91dC0+Y19mdW5jID09IGZ0biAmJiBoYW5kbGUuY2FsbG91dC0+Y19hcmcgPT0gYXJnKTsK IAlDQ19VTkxPQ0soY2MpOworCisJaWYgKG1hdGNoKQorCQljYWxsb3V0X3N0b3AoaGFuZGxlLmNh bGxvdXQpOwogfQogCiB2b2lkCiBjYWxsb3V0X2hhbmRsZV9pbml0KHN0cnVjdCBjYWxsb3V0X2hh bmRsZSAqaGFuZGxlKQogewogCWhhbmRsZS0+Y2FsbG91dCA9IE5VTEw7CiB9CiAKK3N0YXRpYyBp bnQKK2NhbGxvdXRfcmVzdGFydF9hc3luYyhzdHJ1Y3QgY2FsbG91dCAqYywgc3RydWN0IGNhbGxv dXRfYXJncyAqY29hLAorICAgIGNhbGxvdXRfZnVuY190ICpkcmFpbl9mbiwgdm9pZCAqZHJhaW5f YXJnKQoreworCXN0cnVjdCBjYWxsb3V0X2NwdSAqY2M7CisJaW50IGNhbmNlbGxlZDsKKwlpbnQg ZGlyZWN0OworCisJY2MgPSBjYWxsb3V0X2xvY2soYyk7CisKKwkvKiBGaWd1cmUgb3V0IGlmIHRo ZSBjYWxsb3V0IGlzIGRpcmVjdCBvciBub3QgKi8KKwlkaXJlY3QgPSAoKGMtPmNfZmxhZ3MgJiBD QUxMT1VUX0RJUkVDVCkgIT0gMCk7CisKKwkvKgorCSAqIENoZWNrIGlmIHRoZSBjYWxsYmFjayBp cyBjdXJyZW50bHkgc2NoZWR1bGVkIGZvcgorCSAqIGNvbXBsZXRpb246CisJICovCisJaWYgKGNj X2V4ZWNfY3VycihjYywgZGlyZWN0KSA9PSBjKSB7CisJCS8qCisJCSAqIFRyeSB0byBwcmV2ZW50 IHRoZSBjYWxsYmFjayBmcm9tIHJ1bm5pbmcgYnkgc2V0dGluZworCQkgKiB0aGUgImNjX2NhbmNl bCIgdmFyaWFibGUgdG8gInRydWUiLiBBbHNvIGNoZWNrIGlmCisJCSAqIHRoZSBjYWxsb3V0IHdh cyBwcmV2aW91c2x5IHN1YmplY3QgdG8gYSBkZWZlcnJlZAorCQkgKiBjYWxsb3V0IHJlc3RhcnQ6 CisJCSAqLworCQlpZiAoY2NfZXhlY19jYW5jZWwoY2MsIGRpcmVjdCkgPT0gZmFsc2UgfHwKKwkJ ICAgIChjLT5jX2ZsYWdzICYgQ0FMTE9VVF9ERUZSRVNUQVJUKSAhPSAwKSB7CisJCQljY19leGVj X2NhbmNlbChjYywgZGlyZWN0KSA9IHRydWU7CisJCQljYW5jZWxsZWQgPSBDQUxMT1VUX1JFVF9D QU5DRUxMRUQ7CisJCX0gZWxzZSB7CisJCQljYW5jZWxsZWQgPSBDQUxMT1VUX1JFVF9OT1JNQUw7 CisJCX0KKworCQkvKgorCQkgKiBQcmV2ZW50IGNhbGxiYWNrIHJlc3RhcnQgaWYgImNhbGxvdXRf ZHJhaW5feHh4KCkiCisJCSAqIGlzIGJlaW5nIGNhbGxlZCBvciB3ZSBhcmUgc3RvcHBpbmcgdGhl IGNhbGxvdXQgb3IKKwkJICogdGhlIGNhbGxiYWNrIHdhcyBwcmVhbGxvY2F0ZWQgYnkgdXM6CisJ CSAqLworCQlpZiAoY2NfZXhlY19kcmFpbl9mbihjYywgZGlyZWN0KSAhPSBOVUxMIHx8CisJCSAg ICBjb2EgPT0gTlVMTCB8fCAoYy0+Y19mbGFncyAmIENBTExPVVRfTE9DQUxfQUxMT0MpICE9IDAp IHsKKwkJCUNUUjQoS1RSX0NBTExPVVQsICIlcyAlcCBmdW5jICVwIGFyZyAlcCIsCisJCQkgICAg Y2FuY2VsbGVkID8gImNhbmNlbGxlZCBhbmQgZHJhaW5pbmciIDogImRyYWluaW5nIiwKKwkJCSAg ICBjLCBjLT5jX2Z1bmMsIGMtPmNfYXJnKTsKKworCQkJLyogY2xlYXIgb2xkIGZsYWdzLCBpZiBh bnkgKi8KKwkJCWMtPmNfZmxhZ3MgJj0gfihDQUxMT1VUX0FDVElWRSB8IENBTExPVVRfUEVORElO RyB8CisJCQkgICAgQ0FMTE9VVF9ERUZSRVNUQVJUIHwgQ0FMTE9VVF9QUk9DRVNTRUQpOworCisJ CQkvKiBjbGVhciByZXN0YXJ0IGZsYWcsIGlmIGFueSAqLworCQkJY2NfZXhlY19yZXN0YXJ0KGNj LCBkaXJlY3QpID0gZmFsc2U7CisKKwkJCS8qIHNldCBkcmFpbiBmdW5jdGlvbiwgaWYgYW55ICov CisJCQlpZiAoZHJhaW5fZm4gIT0gTlVMTCkgeworCQkJCWNjX2V4ZWNfZHJhaW5fZm4oY2MsIGRp cmVjdCkgPSBkcmFpbl9mbjsKKwkJCQljY19leGVjX2RyYWluX2FyZyhjYywgZGlyZWN0KSA9IGRy YWluX2FyZzsKKwkJCQljYW5jZWxsZWQgfD0gQ0FMTE9VVF9SRVRfRFJBSU5JTkc7CisJCQl9CisJ CX0gZWxzZSB7CisJCQlDVFI0KEtUUl9DQUxMT1VULCAiJXMgJXAgZnVuYyAlcCBhcmcgJXAiLAor CQkJICAgIGNhbmNlbGxlZCA/ICJjYW5jZWxsZWQgYW5kIHJlc3RhcnRpbmciIDogInJlc3RhcnRp bmciLAorCQkJICAgIGMsIGMtPmNfZnVuYywgYy0+Y19hcmcpOworCisJCQkvKiBnZXQgdXMgYmFj ayBpbnRvIHRoZSBnYW1lICovCisJCQljLT5jX2ZsYWdzIHw9IChDQUxMT1VUX0FDVElWRSB8IENB TExPVVRfUEVORElORyB8CisJCQkgICAgQ0FMTE9VVF9ERUZSRVNUQVJUKTsKKwkJCWMtPmNfZmxh Z3MgJj0gfkNBTExPVVRfUFJPQ0VTU0VEOworCisJCQkvKiBlbmFibGUgZGVmZXJyZWQgcmVzdGFy dCAqLworCQkJY2NfZXhlY19yZXN0YXJ0KGNjLCBkaXJlY3QpID0gdHJ1ZTsKKworCQkJLyogc3Rv cmUgYXJndW1lbnRzIGZvciB0aGUgZGVmZXJyZWQgcmVzdGFydCwgaWYgYW55ICovCisJCQljY19l eGVjX3Jlc3RhcnRfYXJncyhjYywgZGlyZWN0KSA9ICpjb2E7CisJCX0KKwl9IGVsc2UgeworCQkv KiBzdG9wIGNhbGxvdXQgKi8KKwkJaWYgKGMtPmNfZmxhZ3MgJiBDQUxMT1VUX1BFTkRJTkcpIHsK KwkJCS8qCisJCQkgKiBUaGUgY2FsbGJhY2sgaGFzIG5vdCB5ZXQgYmVlbiBleGVjdXRlZCwgYW5k CisJCQkgKiB3ZSBzaW1wbHkganVzdCBuZWVkIHRvIHVubGluayBpdDoKKwkJCSAqLworCQkJaWYg KChjLT5jX2ZsYWdzICYgQ0FMTE9VVF9QUk9DRVNTRUQpID09IDApIHsKKwkJCQlMSVNUX1JFTU9W RShjLCBjX2xpbmtzLmxlKTsKKwkJCX0gZWxzZSB7CisJCQkJVEFJTFFfUkVNT1ZFKCZjYy0+Y2Nf ZXhwaXJlcSwgYywgY19saW5rcy50cWUpOworCQkJfQorCQkJY2FuY2VsbGVkID0gQ0FMTE9VVF9S RVRfQ0FOQ0VMTEVEOworCQl9IGVsc2UgeworCQkJY2FuY2VsbGVkID0gQ0FMTE9VVF9SRVRfTk9S TUFMOworCQl9CisKKwkJQ1RSNChLVFJfQ0FMTE9VVCwgIiVzICVwIGZ1bmMgJXAgYXJnICVwIiwK KwkJICAgIGNhbmNlbGxlZCA/ICJyZXNjaGVkdWxlZCIgOiAic2NoZWR1bGVkIiwKKwkJICAgIGMs IGMtPmNfZnVuYywgYy0+Y19hcmcpOworCisJCS8qIFtyZS1dc2NoZWR1bGUgY2FsbG91dCwgaWYg YW55ICovCisJCWlmIChjb2EgIT0gTlVMTCkgeworCQkJY2MgPSBjYWxsb3V0X2NjX2FkZF9sb2Nr ZWQoYywgY2MsIGNvYSk7CisJCX0gZWxzZSB7CisJCQkvKiBjbGVhciBvbGQgZmxhZ3MsIGlmIGFu eSAqLworCQkJYy0+Y19mbGFncyAmPSB+KENBTExPVVRfQUNUSVZFIHwgQ0FMTE9VVF9QRU5ESU5H IHwKKwkJCSAgICBDQUxMT1VUX0RFRlJFU1RBUlQgfCBDQUxMT1VUX1BST0NFU1NFRCk7CisKKwkJ CS8qIHJldHVybiBjYWxsYmFjayB0byBwcmUtYWxsb2NhdGVkIGxpc3QsIGlmIGFueSAqLworCQkJ aWYgKChjLT5jX2ZsYWdzICYgQ0FMTE9VVF9MT0NBTF9BTExPQykgJiYKKwkJCSAgICBjYW5jZWxs ZWQgIT0gQ0FMTE9VVF9SRVRfTk9STUFMKSB7CisJCQkJY2FsbG91dF9jY19kZWwoYywgY2MpOwor CQkJfQorCQl9CisJfQorCUNDX1VOTE9DSyhjYyk7CisJcmV0dXJuIChjYW5jZWxsZWQpOworfQor CiAvKgogICogTmV3IGludGVyZmFjZTsgY2xpZW50cyBhbGxvY2F0ZSB0aGVpciBvd24gY2FsbG91 dCBzdHJ1Y3R1cmVzLgogICoKQEAgLTk0NywzMyArMTEzNSwzMiBAQAogICovCiBpbnQKIGNhbGxv dXRfcmVzZXRfc2J0X29uKHN0cnVjdCBjYWxsb3V0ICpjLCBzYmludGltZV90IHNidCwgc2JpbnRp bWVfdCBwcmVjaXNpb24sCi0gICAgdm9pZCAoKmZ0bikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQg Y3B1LCBpbnQgZmxhZ3MpCisgICAgY2FsbG91dF9mdW5jX3QgKmZ0biwgdm9pZCAqYXJnLCBpbnQg Y3B1LCBpbnQgZmxhZ3MpCiB7Ci0Jc2JpbnRpbWVfdCB0b19zYnQsIHByOwotCXN0cnVjdCBjYWxs b3V0X2NwdSAqY2M7Ci0JaW50IGNhbmNlbGxlZCwgZGlyZWN0OwotCWludCBpZ25vcmVfY3B1PTA7 CisJc3RydWN0IGNhbGxvdXRfYXJncyBjb2E7CiAKLQljYW5jZWxsZWQgPSAwOwotCWlmIChjcHUg PT0gLTEpIHsKLQkJaWdub3JlX2NwdSA9IDE7Ci0JfSBlbHNlIGlmICgoY3B1ID49IE1BWENQVSkg fHwKLQkJICAgKChDQ19DUFUoY3B1KSktPmNjX2luaXRlZCA9PSAwKSkgewotCQkvKiBJbnZhbGlk IENQVSBzcGVjICovCi0JCXBhbmljKCJJbnZhbGlkIENQVSBpbiBjYWxsb3V0ICVkIiwgY3B1KTsK LQl9Ci0JaWYgKGZsYWdzICYgQ19BQlNPTFVURSkgewotCQl0b19zYnQgPSBzYnQ7CisJLyogc3Rv cmUgYXJndW1lbnRzIGZvciBjYWxsb3V0IGFkZCBmdW5jdGlvbiAqLworCWNvYS5mdW5jID0gZnRu OworCWNvYS5hcmcgPSBhcmc7CisJY29hLnByZWNpc2lvbiA9IHByZWNpc2lvbjsKKwljb2EuZmxh Z3MgPSBmbGFnczsKKwljb2EuY3B1ID0gY3B1OworCisJLyogY29tcHV0ZSB0aGUgcmVzdCBvZiB0 aGUgYXJndW1lbnRzIG5lZWRlZCAqLworCWlmIChjb2EuZmxhZ3MgJiBDX0FCU09MVVRFKSB7CisJ CWNvYS50aW1lID0gc2J0OwogCX0gZWxzZSB7Ci0JCWlmICgoZmxhZ3MgJiBDX0hBUkRDTE9DSykg JiYgKHNidCA8IHRpY2tfc2J0KSkKKwkJc2JpbnRpbWVfdCBwcjsKKworCQlpZiAoKGNvYS5mbGFn cyAmIENfSEFSRENMT0NLKSAmJiAoc2J0IDwgdGlja19zYnQpKQogCQkJc2J0ID0gdGlja19zYnQ7 Ci0JCWlmICgoZmxhZ3MgJiBDX0hBUkRDTE9DSykgfHwKKwkJaWYgKChjb2EuZmxhZ3MgJiBDX0hB UkRDTE9DSykgfHwKICNpZmRlZiBOT19FVkVOVFRJTUVSUwogCQkgICAgc2J0ID49IHNidF90aW1l dGhyZXNob2xkKSB7Ci0JCQl0b19zYnQgPSBnZXRzYmludXB0aW1lKCk7CisJCQljb2EudGltZSA9 IGdldHNiaW51cHRpbWUoKTsKIAogCQkJLyogQWRkIHNhZmV0eSBiZWx0IGZvciB0aGUgY2FzZSBv ZiBoeiA+IDEwMDAuICovCi0JCQl0b19zYnQgKz0gdGNfdGlja19zYnQgLSB0aWNrX3NidDsKKwkJ CWNvYS50aW1lICs9IHRjX3RpY2tfc2J0IC0gdGlja19zYnQ7CiAjZWxzZQogCQkgICAgc2J0ID49 IHNidF90aWNrdGhyZXNob2xkKSB7CiAJCQkvKgpAQCAtOTgzLDE1MCArMTE3MCwyOSBAQAogCQkJ ICogYWN0aXZlIG9uZXMuCiAJCQkgKi8KICNpZmRlZiBfX0xQNjRfXwotCQkJdG9fc2J0ID0gRFBD UFVfR0VUKGhhcmRjbG9ja3RpbWUpOworCQkJY29hLnRpbWUgPSBEUENQVV9HRVQoaGFyZGNsb2Nr dGltZSk7CiAjZWxzZQogCQkJc3BpbmxvY2tfZW50ZXIoKTsKLQkJCXRvX3NidCA9IERQQ1BVX0dF VChoYXJkY2xvY2t0aW1lKTsKKwkJCWNvYS50aW1lID0gRFBDUFVfR0VUKGhhcmRjbG9ja3RpbWUp OwogCQkJc3BpbmxvY2tfZXhpdCgpOwogI2VuZGlmCiAjZW5kaWYKLQkJCWlmICgoZmxhZ3MgJiBD X0hBUkRDTE9DSykgPT0gMCkKLQkJCQl0b19zYnQgKz0gdGlja19zYnQ7CisJCQlpZiAoKGNvYS5m bGFncyAmIENfSEFSRENMT0NLKSA9PSAwKQorCQkJCWNvYS50aW1lICs9IHRpY2tfc2J0OwogCQl9 IGVsc2UKLQkJCXRvX3NidCA9IHNiaW51cHRpbWUoKTsKLQkJaWYgKFNCVF9NQVggLSB0b19zYnQg PCBzYnQpCi0JCQl0b19zYnQgPSBTQlRfTUFYOworCQkJY29hLnRpbWUgPSBzYmludXB0aW1lKCk7 CisJCWlmIChTQlRfTUFYIC0gY29hLnRpbWUgPCBzYnQpCisJCQljb2EudGltZSA9IFNCVF9NQVg7 CiAJCWVsc2UKLQkJCXRvX3NidCArPSBzYnQ7Ci0JCXByID0gKChDX1BSRUxHRVQoZmxhZ3MpIDwg MCkgPyBzYnQgPj4gdGNfcHJlY2V4cCA6Ci0JCSAgICBzYnQgPj4gQ19QUkVMR0VUKGZsYWdzKSk7 Ci0JCWlmIChwciA+IHByZWNpc2lvbikKLQkJCXByZWNpc2lvbiA9IHByOwotCX0KLQkvKiAKLQkg KiBUaGlzIGZsYWcgdXNlZCB0byBiZSBhZGRlZCBieSBjYWxsb3V0X2NjX2FkZCwgYnV0IHRoZQot CSAqIGZpcnN0IHRpbWUgeW91IGNhbGwgdGhpcyB3ZSBjb3VsZCBlbmQgdXAgd2l0aCB0aGUKLQkg KiB3cm9uZyBkaXJlY3QgZmxhZyBpZiB3ZSBkb24ndCBkbyBpdCBiZWZvcmUgd2UgYWRkLgotCSAq LwotCWlmIChmbGFncyAmIENfRElSRUNUX0VYRUMpIHsKLQkJZGlyZWN0ID0gMTsKLQl9IGVsc2Ug ewotCQlkaXJlY3QgPSAwOwotCX0KLQlLQVNTRVJUKCFkaXJlY3QgfHwgYy0+Y19sb2NrID09IE5V TEwsCi0JICAgICgiJXM6IGRpcmVjdCBjYWxsb3V0ICVwIGhhcyBsb2NrIiwgX19mdW5jX18sIGMp KTsKLQljYyA9IGNhbGxvdXRfbG9jayhjKTsKLQkvKgotCSAqIERvbid0IGFsbG93IG1pZ3JhdGlv biBvZiBwcmUtYWxsb2NhdGVkIGNhbGxvdXRzIGxlc3QgdGhleQotCSAqIGJlY29tZSB1bmJhbGFu Y2VkIG9yIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgdXNlciBkb2VzCi0JICogbm90IGNhcmUu IAotCSAqLwotCWlmICgoYy0+Y19pZmxhZ3MgJiBDQUxMT1VUX0xPQ0FMX0FMTE9DKSB8fAotCSAg ICBpZ25vcmVfY3B1KSB7Ci0JCWNwdSA9IGMtPmNfY3B1OworCQkJY29hLnRpbWUgKz0gc2J0Owor CQlwciA9ICgoQ19QUkVMR0VUKGNvYS5mbGFncykgPCAwKSA/IHNidCA+PiB0Y19wcmVjZXhwIDoK KwkJICAgIHNidCA+PiBDX1BSRUxHRVQoY29hLmZsYWdzKSk7CisJCWlmIChwciA+IGNvYS5wcmVj aXNpb24pCisJCQljb2EucHJlY2lzaW9uID0gcHI7CiAJfQogCi0JaWYgKGNjX2V4ZWNfY3Vycihj YywgZGlyZWN0KSA9PSBjKSB7Ci0JCS8qCi0JCSAqIFdlJ3JlIGJlaW5nIGFza2VkIHRvIHJlc2No ZWR1bGUgYSBjYWxsb3V0IHdoaWNoIGlzCi0JCSAqIGN1cnJlbnRseSBpbiBwcm9ncmVzcy4gIElm IHRoZXJlIGlzIGEgbG9jayB0aGVuIHdlCi0JCSAqIGNhbiBjYW5jZWwgdGhlIGNhbGxvdXQgaWYg aXQgaGFzIG5vdCByZWFsbHkgc3RhcnRlZC4KLQkJICovCi0JCWlmIChjLT5jX2xvY2sgIT0gTlVM TCAmJiBjY19leGVjX2NhbmNlbChjYywgZGlyZWN0KSkKLQkJCWNhbmNlbGxlZCA9IGNjX2V4ZWNf Y2FuY2VsKGNjLCBkaXJlY3QpID0gdHJ1ZTsKLQkJaWYgKGNjX2V4ZWNfd2FpdGluZyhjYywgZGly ZWN0KSkgewotCQkJLyoKLQkJCSAqIFNvbWVvbmUgaGFzIGNhbGxlZCBjYWxsb3V0X2RyYWluIHRv IGtpbGwgdGhpcwotCQkJICogY2FsbG91dC4gIERvbid0IHJlc2NoZWR1bGUuCi0JCQkgKi8KLQkJ CUNUUjQoS1RSX0NBTExPVVQsICIlcyAlcCBmdW5jICVwIGFyZyAlcCIsCi0JCQkgICAgY2FuY2Vs bGVkID8gImNhbmNlbGxlZCIgOiAiZmFpbGVkIHRvIGNhbmNlbCIsCi0JCQkgICAgYywgYy0+Y19m dW5jLCBjLT5jX2FyZyk7Ci0JCQlDQ19VTkxPQ0soY2MpOwotCQkJcmV0dXJuIChjYW5jZWxsZWQp OwotCQl9Ci0jaWZkZWYgU01QCi0JCWlmIChjYWxsb3V0X21pZ3JhdGluZyhjKSkgewotCQkJLyog Ci0JCQkgKiBUaGlzIG9ubHkgb2NjdXJzIHdoZW4gYSBzZWNvbmQgY2FsbG91dF9yZXNldF9zYnRf b24KLQkJCSAqIGlzIG1hZGUgYWZ0ZXIgYSBwcmV2aW91cyBvbmUgbW92ZWQgaXQgaW50bwotCQkJ ICogZGVmZXJyZWQgbWlncmF0aW9uIChiZWxvdykuIE5vdGUgd2UgZG8gKm5vdCogY2hhbmdlCi0J CQkgKiB0aGUgcHJldl9jcHUgZXZlbiB0aG91Z2ggdGhlIHByZXZpb3VzIHRhcmdldCBtYXkKLQkJ CSAqIGJlIGRpZmZlcmVudC4KLQkJCSAqLwotCQkJY2NfbWlncmF0aW9uX2NwdShjYywgZGlyZWN0 KSA9IGNwdTsKLQkJCWNjX21pZ3JhdGlvbl90aW1lKGNjLCBkaXJlY3QpID0gdG9fc2J0OwotCQkJ Y2NfbWlncmF0aW9uX3ByZWMoY2MsIGRpcmVjdCkgPSBwcmVjaXNpb247Ci0JCQljY19taWdyYXRp b25fZnVuYyhjYywgZGlyZWN0KSA9IGZ0bjsKLQkJCWNjX21pZ3JhdGlvbl9hcmcoY2MsIGRpcmVj dCkgPSBhcmc7Ci0JCQljYW5jZWxsZWQgPSAxOwotCQkJQ0NfVU5MT0NLKGNjKTsKLQkJCXJldHVy biAoY2FuY2VsbGVkKTsKLQkJfQotI2VuZGlmCi0JfQotCWlmIChjLT5jX2lmbGFncyAmIENBTExP VVRfUEVORElORykgewotCQlpZiAoKGMtPmNfaWZsYWdzICYgQ0FMTE9VVF9QUk9DRVNTRUQpID09 IDApIHsKLQkJCWlmIChjY19leGVjX25leHQoY2MpID09IGMpCi0JCQkJY2NfZXhlY19uZXh0KGNj KSA9IExJU1RfTkVYVChjLCBjX2xpbmtzLmxlKTsKLQkJCUxJU1RfUkVNT1ZFKGMsIGNfbGlua3Mu bGUpOwotCQl9IGVsc2UgewotCQkJVEFJTFFfUkVNT1ZFKCZjYy0+Y2NfZXhwaXJlcSwgYywgY19s aW5rcy50cWUpOwotCQl9Ci0JCWNhbmNlbGxlZCA9IDE7Ci0JCWMtPmNfaWZsYWdzICY9IH4gQ0FM TE9VVF9QRU5ESU5HOwotCQljLT5jX2ZsYWdzICY9IH4gQ0FMTE9VVF9BQ1RJVkU7Ci0JfQotCi0j aWZkZWYgU01QCi0JLyoKLQkgKiBJZiB0aGUgY2FsbG91dCBtdXN0IG1pZ3JhdGUgdHJ5IHRvIHBl cmZvcm0gaXQgaW1tZWRpYXRlbHkuCi0JICogSWYgdGhlIGNhbGxvdXQgaXMgY3VycmVudGx5IHJ1 bm5pbmcsIGp1c3QgZGVmZXIgdGhlIG1pZ3JhdGlvbgotCSAqIHRvIGEgbW9yZSBhcHByb3ByaWF0 ZSBtb21lbnQuCi0JICovCi0JaWYgKGMtPmNfY3B1ICE9IGNwdSkgewotCQlpZiAoY2NfZXhlY19j dXJyKGNjLCBkaXJlY3QpID09IGMpIHsKLQkJCS8qIAotCQkJICogUGVuZGluZyB3aWxsIGhhdmUg YmVlbiByZW1vdmVkIHNpbmNlIHdlIGFyZQotCQkJICogYWN0dWFsbHkgZXhlY3V0aW5nIHRoZSBj YWxsb3V0IG9uIGFub3RoZXIKLQkJCSAqIENQVS4gVGhhdCBjYWxsb3V0IHNob3VsZCBiZSB3YWl0 aW5nIG9uIHRoZQotCQkJICogbG9jayB0aGUgY2FsbGVyIGhvbGRzLiBJZiB3ZSBzZXQgYm90aAot CQkJICogYWN0aXZlL2FuZC9wZW5kaW5nIGFmdGVyIHdlIHJldHVybiBhbmQgdGhlCi0JCQkgKiBs b2NrIG9uIHRoZSBleGVjdXRpbmcgY2FsbG91dCBwcm9jZWVkcywgaXQKLQkJCSAqIHdpbGwgdGhl biBzZWUgcGVuZGluZyBpcyB0cnVlIGFuZCByZXR1cm4uCi0JCQkgKiBBdCB0aGUgcmV0dXJuIGZy b20gdGhlIGFjdHVhbCBjYWxsb3V0IGV4ZWN1dGlvbgotCQkJICogdGhlIG1pZ3JhdGlvbiB3aWxs IG9jY3VyIGluIHNvZnRjbG9ja19jYWxsX2NjCi0JCQkgKiBhbmQgdGhpcyBuZXcgY2FsbG91dCB3 aWxsIGJlIHBsYWNlZCBvbiB0aGUgCi0JCQkgKiBuZXcgQ1BVIHZpYSBhIGNhbGwgdG8gY2FsbG91 dF9jcHVfc3dpdGNoKCkgd2hpY2gKLQkJCSAqIHdpbGwgZ2V0IHRoZSBsb2NrIG9uIHRoZSByaWdo dCBDUFUgZm9sbG93ZWQKLQkJCSAqIGJ5IGEgY2FsbCBjYWxsb3V0X2NjX2FkZCgpIHdoaWNoIHdp bGwgYWRkIGl0IHRoZXJlLgotCQkJICogKHNlZSBhYm92ZSBpbiBzb2Z0Y2xvY2tfY2FsbF9jYygp KS4KLQkJCSAqLwotCQkJY2NfbWlncmF0aW9uX2NwdShjYywgZGlyZWN0KSA9IGNwdTsKLQkJCWNj X21pZ3JhdGlvbl90aW1lKGNjLCBkaXJlY3QpID0gdG9fc2J0OwotCQkJY2NfbWlncmF0aW9uX3By ZWMoY2MsIGRpcmVjdCkgPSBwcmVjaXNpb247Ci0JCQljY19taWdyYXRpb25fZnVuYyhjYywgZGly ZWN0KSA9IGZ0bjsKLQkJCWNjX21pZ3JhdGlvbl9hcmcoY2MsIGRpcmVjdCkgPSBhcmc7Ci0JCQlj LT5jX2lmbGFncyB8PSAoQ0FMTE9VVF9ERlJNSUdSQVRJT04gfCBDQUxMT1VUX1BFTkRJTkcpOwot CQkJYy0+Y19mbGFncyB8PSBDQUxMT1VUX0FDVElWRTsKLQkJCUNUUjYoS1RSX0NBTExPVVQsCi0J CSAgICAibWlncmF0aW9uIG9mICVwIGZ1bmMgJXAgYXJnICVwIGluICVkLiUwOHggdG8gJXUgZGVm ZXJyZWQiLAotCQkJICAgIGMsIGMtPmNfZnVuYywgYy0+Y19hcmcsIChpbnQpKHRvX3NidCA+PiAz MiksCi0JCQkgICAgKHVfaW50KSh0b19zYnQgJiAweGZmZmZmZmZmKSwgY3B1KTsKLQkJCUNDX1VO TE9DSyhjYyk7Ci0JCQlyZXR1cm4gKGNhbmNlbGxlZCk7Ci0JCX0KLQkJY2MgPSBjYWxsb3V0X2Nw dV9zd2l0Y2goYywgY2MsIGNwdSk7Ci0JfQotI2VuZGlmCi0KLQljYWxsb3V0X2NjX2FkZChjLCBj YywgdG9fc2J0LCBwcmVjaXNpb24sIGZ0biwgYXJnLCBjcHUsIGZsYWdzKTsKLQlDVFI2KEtUUl9D QUxMT1VULCAiJXNzY2hlZHVsZWQgJXAgZnVuYyAlcCBhcmcgJXAgaW4gJWQuJTA4eCIsCi0JICAg IGNhbmNlbGxlZCA/ICJyZSIgOiAiIiwgYywgYy0+Y19mdW5jLCBjLT5jX2FyZywgKGludCkodG9f c2J0ID4+IDMyKSwKLQkgICAgKHVfaW50KSh0b19zYnQgJiAweGZmZmZmZmZmKSk7Ci0JQ0NfVU5M T0NLKGNjKTsKLQotCXJldHVybiAoY2FuY2VsbGVkKTsKKwkvKiBnZXQgY2FsbGJhY2sgc3RhcnRl ZCwgaWYgYW55ICovCisJcmV0dXJuIChjYWxsb3V0X3Jlc3RhcnRfYXN5bmMoYywgJmNvYSwgTlVM TCwgTlVMTCkpOwogfQogCiAvKgpAQCAtMTE0NSwyNzAgKzEyMTEsMTA2IEBACiB9CiAKIGludAot X2NhbGxvdXRfc3RvcF9zYWZlKHN0cnVjdCBjYWxsb3V0ICpjLCBpbnQgc2FmZSkKK2NhbGxvdXRf c3RvcChzdHJ1Y3QgY2FsbG91dCAqYykKIHsKLQlzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjLCAqb2xk X2NjOwotCXN0cnVjdCBsb2NrX2NsYXNzICpjbGFzczsKLQlpbnQgZGlyZWN0LCBzcV9sb2NrZWQs IHVzZV9sb2NrOwotCWludCBub3Rfb25fYV9saXN0OwotCi0JaWYgKHNhZmUpCi0JCVdJVE5FU1Nf V0FSTihXQVJOX0dJQU5UT0sgfCBXQVJOX1NMRUVQT0ssIGMtPmNfbG9jaywKLQkJICAgICJjYWxs aW5nICVzIiwgX19mdW5jX18pOworCS8qIGdldCBjYWxsYmFjayBzdG9wcGVkLCBpZiBhbnkgKi8K KwlyZXR1cm4gKGNhbGxvdXRfcmVzdGFydF9hc3luYyhjLCBOVUxMLCBOVUxMLCBOVUxMKSk7Cit9 CiAKLQkvKgotCSAqIFNvbWUgb2xkIHN1YnN5c3RlbXMgZG9uJ3QgaG9sZCBHaWFudCB3aGlsZSBy dW5uaW5nIGEgY2FsbG91dF9zdG9wKCksCi0JICogc28ganVzdCBkaXNjYXJkIHRoaXMgY2hlY2sg Zm9yIHRoZSBtb21lbnQuCi0JICovCi0JaWYgKCFzYWZlICYmIGMtPmNfbG9jayAhPSBOVUxMKSB7 Ci0JCWlmIChjLT5jX2xvY2sgPT0gJkdpYW50LmxvY2tfb2JqZWN0KQotCQkJdXNlX2xvY2sgPSBt dHhfb3duZWQoJkdpYW50KTsKLQkJZWxzZSB7Ci0JCQl1c2VfbG9jayA9IDE7Ci0JCQljbGFzcyA9 IExPQ0tfQ0xBU1MoYy0+Y19sb2NrKTsKLQkJCWNsYXNzLT5sY19hc3NlcnQoYy0+Y19sb2NrLCBM QV9YTE9DS0VEKTsKLQkJfQotCX0gZWxzZQotCQl1c2VfbG9jayA9IDA7Ci0JaWYgKGMtPmNfaWZs YWdzICYgQ0FMTE9VVF9ESVJFQ1QpIHsKLQkJZGlyZWN0ID0gMTsKLQl9IGVsc2UgewotCQlkaXJl Y3QgPSAwOwotCX0KLQlzcV9sb2NrZWQgPSAwOwotCW9sZF9jYyA9IE5VTEw7Ci1hZ2FpbjoKLQlj YyA9IGNhbGxvdXRfbG9jayhjKTsKK3N0YXRpYyB2b2lkCitjYWxsb3V0X2RyYWluX2Z1bmN0aW9u KHZvaWQgKmFyZykKK3sKKwl3YWtldXAoYXJnKTsKK30KIAotCWlmICgoYy0+Y19pZmxhZ3MgJiAo Q0FMTE9VVF9ERlJNSUdSQVRJT04gfCBDQUxMT1VUX1BFTkRJTkcpKSA9PQotCSAgICAoQ0FMTE9V VF9ERlJNSUdSQVRJT04gfCBDQUxMT1VUX1BFTkRJTkcpICYmCi0JICAgICgoYy0+Y19mbGFncyAm IENBTExPVVRfQUNUSVZFKSA9PSBDQUxMT1VUX0FDVElWRSkpIHsKLQkJLyoKLQkJICogU3BlY2lh bCBjYXNlIHdoZXJlIHRoaXMgc2xpcHBlZCBpbiB3aGlsZSB3ZQotCQkgKiB3ZXJlIG1pZ3JhdGlu ZyAqYXMqIHRoZSBjYWxsb3V0IGlzIGFib3V0IHRvCi0JCSAqIGV4ZWN1dGUuIFRoZSBjYWxsZXIg cHJvYmFibHkgaG9sZHMgdGhlIGxvY2sKLQkJICogdGhlIGNhbGxvdXQgd2FudHMuCi0JCSAqCi0J CSAqIEdldCByaWQgb2YgdGhlIG1pZ3JhdGlvbiBmaXJzdC4gVGhlbiBzZXQKLQkJICogdGhlIGZs YWcgdGhhdCB0ZWxscyB0aGlzIGNvZGUgKm5vdCogdG8KLQkJICogdHJ5IHRvIHJlbW92ZSBpdCBm cm9tIGFueSBsaXN0cyAoaXRzIG5vdAotCQkgKiBvbiBvbmUgeWV0KS4gV2hlbiB0aGUgY2FsbG91 dCB3aGVlbCBydW5zLAotCQkgKiBpdCB3aWxsIGlnbm9yZSB0aGlzIGNhbGxvdXQuCi0JCSAqLwot CQljLT5jX2lmbGFncyAmPSB+Q0FMTE9VVF9QRU5ESU5HOwotCQljLT5jX2ZsYWdzICY9IH5DQUxM T1VUX0FDVElWRTsKLQkJbm90X29uX2FfbGlzdCA9IDE7Ci0JfSBlbHNlIHsKLQkJbm90X29uX2Ff bGlzdCA9IDA7Ci0JfQoraW50CitjYWxsb3V0X2RyYWluX2FzeW5jKHN0cnVjdCBjYWxsb3V0ICpj LCBjYWxsb3V0X2Z1bmNfdCAqZm4sIHZvaWQgKmFyZykKK3sKKwkvKiBnZXQgY2FsbGJhY2sgc3Rv cHBlZCwgaWYgYW55ICovCisJcmV0dXJuIChjYWxsb3V0X3Jlc3RhcnRfYXN5bmMoCisJICAgIGMs IE5VTEwsIGZuLCBhcmcpICYgQ0FMTE9VVF9SRVRfRFJBSU5JTkcpOworfQogCi0JLyoKLQkgKiBJ ZiB0aGUgY2FsbG91dCB3YXMgbWlncmF0aW5nIHdoaWxlIHRoZSBjYWxsb3V0IGNwdSBsb2NrIHdh cwotCSAqIGRyb3BwZWQsICBqdXN0IGRyb3AgdGhlIHNsZWVwcXVldWUgbG9jayBhbmQgY2hlY2sg dGhlIHN0YXRlcwotCSAqIGFnYWluLgotCSAqLwotCWlmIChzcV9sb2NrZWQgIT0gMCAmJiBjYyAh PSBvbGRfY2MpIHsKLSNpZmRlZiBTTVAKLQkJQ0NfVU5MT0NLKGNjKTsKLQkJc2xlZXBxX3JlbGVh c2UoJmNjX2V4ZWNfd2FpdGluZyhvbGRfY2MsIGRpcmVjdCkpOwotCQlzcV9sb2NrZWQgPSAwOwot CQlvbGRfY2MgPSBOVUxMOwotCQlnb3RvIGFnYWluOwotI2Vsc2UKLQkJcGFuaWMoIm1pZ3JhdGlv biBzaG91bGQgbm90IGhhcHBlbiIpOwotI2VuZGlmCi0JfQoraW50CitjYWxsb3V0X2RyYWluKHN0 cnVjdCBjYWxsb3V0ICpjKQoreworCWludCBjYW5jZWxsZWQ7CiAKLQkvKgotCSAqIElmIHRoZSBj YWxsb3V0IGlzbid0IHBlbmRpbmcsIGl0J3Mgbm90IG9uIHRoZSBxdWV1ZSwgc28KLQkgKiBkb24n dCBhdHRlbXB0IHRvIHJlbW92ZSBpdCBmcm9tIHRoZSBxdWV1ZS4gIFdlIGNhbiB0cnkgdG8KLQkg KiBzdG9wIGl0IGJ5IG90aGVyIG1lYW5zIGhvd2V2ZXIuCi0JICovCi0JaWYgKCEoYy0+Y19pZmxh Z3MgJiBDQUxMT1VUX1BFTkRJTkcpKSB7Ci0JCWMtPmNfZmxhZ3MgJj0gfkNBTExPVVRfQUNUSVZF OworCVdJVE5FU1NfV0FSTihXQVJOX0dJQU5UT0sgfCBXQVJOX1NMRUVQT0ssIE5VTEwsCisJICAg ICJEcmFpbmluZyBjYWxsb3V0Iik7CisKKwljYWxsb3V0X2xvY2tfY2xpZW50KGMtPmNfZmxhZ3Ms IGMtPmNfbG9jayk7CisKKwkvKiBhdCB0aGlzIHBvaW50IHRoZSAiYy0+Y19jcHUiIGZpZWxkIGlz IG5vdCBjaGFuZ2luZyAqLworCisJY2FuY2VsbGVkID0gY2FsbG91dF9kcmFpbl9hc3luYyhjLCAm Y2FsbG91dF9kcmFpbl9mdW5jdGlvbiwgYyk7CisKKwlpZiAoY2FuY2VsbGVkICE9IENBTExPVVRf UkVUX05PUk1BTCkgeworCQlzdHJ1Y3QgY2FsbG91dF9jcHUgKmNjOworCQlpbnQgZGlyZWN0Owor CisJCUNUUjMoS1RSX0NBTExPVVQsICJuZWVkIHRvIGRyYWluICVwIGZ1bmMgJXAgYXJnICVwIiwK KwkJICAgIGMsIGMtPmNfZnVuYywgYy0+Y19hcmcpOworCisJCWNjID0gY2FsbG91dF9sb2NrKGMp OworCQlkaXJlY3QgPSAoKGMtPmNfZmxhZ3MgJiBDQUxMT1VUX0RJUkVDVCkgIT0gMCk7CiAKIAkJ LyoKLQkJICogSWYgaXQgd2Fzbid0IG9uIHRoZSBxdWV1ZSBhbmQgaXQgaXNuJ3QgdGhlIGN1cnJl bnQKLQkJICogY2FsbG91dCwgdGhlbiB3ZSBjYW4ndCBzdG9wIGl0LCBzbyBqdXN0IGJhaWwuCisJ CSAqIFdlJ3ZlIGdvdHRlbiBvdXIgY2FsbG91dCBDUFUgbG9jaywgaXQgaXMgc2FmZSB0bworCQkg KiBkcm9wIHRoZSBpbml0aWFsIGxvY2s6CiAJCSAqLwotCQlpZiAoY2NfZXhlY19jdXJyKGNjLCBk aXJlY3QpICE9IGMpIHsKLQkJCUNUUjMoS1RSX0NBTExPVVQsICJmYWlsZWQgdG8gc3RvcCAlcCBm dW5jICVwIGFyZyAlcCIsCi0JCQkgICAgYywgYy0+Y19mdW5jLCBjLT5jX2FyZyk7Ci0JCQlDQ19V TkxPQ0soY2MpOwotCQkJaWYgKHNxX2xvY2tlZCkKLQkJCQlzbGVlcHFfcmVsZWFzZSgmY2NfZXhl Y193YWl0aW5nKGNjLCBkaXJlY3QpKTsKLQkJCXJldHVybiAoMCk7Ci0JCX0KKwkJY2FsbG91dF91 bmxvY2tfY2xpZW50KGMtPmNfZmxhZ3MsIGMtPmNfbG9jayk7CiAKLQkJaWYgKHNhZmUpIHsKLQkJ CS8qCi0JCQkgKiBUaGUgY3VycmVudCBjYWxsb3V0IGlzIHJ1bm5pbmcgKG9yIGp1c3QKLQkJCSAq IGFib3V0IHRvIHJ1bikgYW5kIGJsb2NraW5nIGlzIGFsbG93ZWQsIHNvCi0JCQkgKiBqdXN0IHdh aXQgZm9yIHRoZSBjdXJyZW50IGludm9jYXRpb24gdG8KLQkJCSAqIGZpbmlzaC4KLQkJCSAqLwot CQkJd2hpbGUgKGNjX2V4ZWNfY3VycihjYywgZGlyZWN0KSA9PSBjKSB7Ci0JCQkJLyoKLQkJCQkg KiBVc2UgZGlyZWN0IGNhbGxzIHRvIHNsZWVwcXVldWUgaW50ZXJmYWNlCi0JCQkJICogaW5zdGVh ZCBvZiBjdi9tc2xlZXAgaW4gb3JkZXIgdG8gYXZvaWQKLQkJCQkgKiBhIExPUiBiZXR3ZWVuIGNj X2xvY2sgYW5kIHNsZWVwcXVldWUKLQkJCQkgKiBjaGFpbiBzcGlubG9ja3MuICBUaGlzIHBpZWNl IG9mIGNvZGUKLQkJCQkgKiBlbXVsYXRlcyBhIG1zbGVlcF9zcGluKCkgY2FsbCBhY3R1YWxseS4K LQkJCQkgKgotCQkJCSAqIElmIHdlIGFscmVhZHkgaGF2ZSB0aGUgc2xlZXBxdWV1ZSBjaGFpbgot CQkJCSAqIGxvY2tlZCwgdGhlbiB3ZSBjYW4gc2FmZWx5IGJsb2NrLiAgSWYgd2UKLQkJCQkgKiBk b24ndCBhbHJlYWR5IGhhdmUgaXQgbG9ja2VkLCBob3dldmVyLAotCQkJCSAqIHdlIGhhdmUgdG8g ZHJvcCB0aGUgY2NfbG9jayB0byBsb2NrCi0JCQkJICogaXQuICBUaGlzIG9wZW5zIHNldmVyYWwg cmFjZXMsIHNvIHdlCi0JCQkJICogcmVzdGFydCBhdCB0aGUgYmVnaW5uaW5nIG9uY2Ugd2UgaGF2 ZQotCQkJCSAqIGJvdGggbG9ja3MuICBJZiBub3RoaW5nIGhhcyBjaGFuZ2VkLCB0aGVuCi0JCQkJ ICogd2Ugd2lsbCBlbmQgdXAgYmFjayBoZXJlIHdpdGggc3FfbG9ja2VkCi0JCQkJICogc2V0Lgot CQkJCSAqLwotCQkJCWlmICghc3FfbG9ja2VkKSB7Ci0JCQkJCUNDX1VOTE9DSyhjYyk7Ci0JCQkJ CXNsZWVwcV9sb2NrKAotCQkJCQkgICAgJmNjX2V4ZWNfd2FpdGluZyhjYywgZGlyZWN0KSk7Ci0J CQkJCXNxX2xvY2tlZCA9IDE7Ci0JCQkJCW9sZF9jYyA9IGNjOwotCQkJCQlnb3RvIGFnYWluOwot CQkJCX0KKwkJLyogV2FpdCBmb3IgZHJhaW4gdG8gY29tcGxldGUgKi8KKworCQl3aGlsZSAoY2Nf ZXhlY19jdXJyKGNjLCBkaXJlY3QpID09IGMpCisJCQltc2xlZXBfc3BpbihjLCAoc3RydWN0IG10 eCAqKSZjYy0+Y2NfbG9jaywgImNvZHJhaW4iLCAwKTsKIAotCQkJCS8qCi0JCQkJICogTWlncmF0 aW9uIGNvdWxkIGJlIGNhbmNlbGxlZCBoZXJlLCBidXQKLQkJCQkgKiBhcyBsb25nIGFzIGl0IGlz IHN0aWxsIG5vdCBzdXJlIHdoZW4gaXQKLQkJCQkgKiB3aWxsIGJlIHBhY2tlZCB1cCwganVzdCBs ZXQgc29mdGNsb2NrKCkKLQkJCQkgKiB0YWtlIGNhcmUgb2YgaXQuCi0JCQkJICovCi0JCQkJY2Nf ZXhlY193YWl0aW5nKGNjLCBkaXJlY3QpID0gdHJ1ZTsKLQkJCQlEUk9QX0dJQU5UKCk7Ci0JCQkJ Q0NfVU5MT0NLKGNjKTsKLQkJCQlzbGVlcHFfYWRkKAotCQkJCSAgICAmY2NfZXhlY193YWl0aW5n KGNjLCBkaXJlY3QpLAotCQkJCSAgICAmY2MtPmNjX2xvY2subG9ja19vYmplY3QsICJjb2RyYWlu IiwKLQkJCQkgICAgU0xFRVBRX1NMRUVQLCAwKTsKLQkJCQlzbGVlcHFfd2FpdCgKLQkJCQkgICAg JmNjX2V4ZWNfd2FpdGluZyhjYywgZGlyZWN0KSwKLQkJCQkJICAgICAwKTsKLQkJCQlzcV9sb2Nr ZWQgPSAwOwotCQkJCW9sZF9jYyA9IE5VTEw7Ci0KLQkJCQkvKiBSZWFjcXVpcmUgbG9ja3MgcHJl dmlvdXNseSByZWxlYXNlZC4gKi8KLQkJCQlQSUNLVVBfR0lBTlQoKTsKLQkJCQlDQ19MT0NLKGNj KTsKLQkJCX0KLQkJfSBlbHNlIGlmICh1c2VfbG9jayAmJgotCQkJICAgIWNjX2V4ZWNfY2FuY2Vs KGNjLCBkaXJlY3QpKSB7Ci0JCQkKLQkJCS8qCi0JCQkgKiBUaGUgY3VycmVudCBjYWxsb3V0IGlz IHdhaXRpbmcgZm9yIGl0cwotCQkJICogbG9jayB3aGljaCB3ZSBob2xkLiAgQ2FuY2VsIHRoZSBj YWxsb3V0Ci0JCQkgKiBhbmQgcmV0dXJuLiAgQWZ0ZXIgb3VyIGNhbGxlciBkcm9wcyB0aGUKLQkJ CSAqIGxvY2ssIHRoZSBjYWxsb3V0IHdpbGwgYmUgc2tpcHBlZCBpbgotCQkJICogc29mdGNsb2Nr KCkuCi0JCQkgKi8KLQkJCWNjX2V4ZWNfY2FuY2VsKGNjLCBkaXJlY3QpID0gdHJ1ZTsKLQkJCUNU UjMoS1RSX0NBTExPVVQsICJjYW5jZWxsZWQgJXAgZnVuYyAlcCBhcmcgJXAiLAotCQkJICAgIGMs IGMtPmNfZnVuYywgYy0+Y19hcmcpOwotCQkJS0FTU0VSVCghY2NfY2NlX21pZ3JhdGluZyhjYywg ZGlyZWN0KSwKLQkJCSAgICAoImNhbGxvdXQgd3JvbmdseSBzY2hlZHVsZWQgZm9yIG1pZ3JhdGlv biIpKTsKLQkJCWlmIChjYWxsb3V0X21pZ3JhdGluZyhjKSkgewotCQkJCWMtPmNfaWZsYWdzICY9 IH5DQUxMT1VUX0RGUk1JR1JBVElPTjsKLSNpZmRlZiBTTVAKLQkJCQljY19taWdyYXRpb25fY3B1 KGNjLCBkaXJlY3QpID0gQ1BVQkxPQ0s7Ci0JCQkJY2NfbWlncmF0aW9uX3RpbWUoY2MsIGRpcmVj dCkgPSAwOwotCQkJCWNjX21pZ3JhdGlvbl9wcmVjKGNjLCBkaXJlY3QpID0gMDsKLQkJCQljY19t aWdyYXRpb25fZnVuYyhjYywgZGlyZWN0KSA9IE5VTEw7Ci0JCQkJY2NfbWlncmF0aW9uX2FyZyhj YywgZGlyZWN0KSA9IE5VTEw7Ci0jZW5kaWYKLQkJCX0KLQkJCUNDX1VOTE9DSyhjYyk7Ci0JCQlL QVNTRVJUKCFzcV9sb2NrZWQsICgic2xlZXBxdWV1ZSBjaGFpbiBsb2NrZWQiKSk7Ci0JCQlyZXR1 cm4gKDEpOwotCQl9IGVsc2UgaWYgKGNhbGxvdXRfbWlncmF0aW5nKGMpKSB7Ci0JCQkvKgotCQkJ ICogVGhlIGNhbGxvdXQgaXMgY3VycmVudGx5IGJlaW5nIHNlcnZpY2VkCi0JCQkgKiBhbmQgdGhl ICJuZXh0IiBjYWxsb3V0IGlzIHNjaGVkdWxlZCBhdAotCQkJICogaXRzIGNvbXBsZXRpb24gd2l0 aCBhIG1pZ3JhdGlvbi4gV2UgcmVtb3ZlCi0JCQkgKiB0aGUgbWlncmF0aW9uIGZsYWcgc28gaXQg Kndvbid0KiBnZXQgcmVzY2hlZHVsZWQsCi0JCQkgKiBidXQgd2UgY2FuJ3Qgc3RvcCB0aGUgb25l IHRoYXRzIHJ1bm5pbmcgc28KLQkJCSAqIHdlIHJldHVybiAwLgotCQkJICovCi0JCQljLT5jX2lm bGFncyAmPSB+Q0FMTE9VVF9ERlJNSUdSQVRJT047Ci0jaWZkZWYgU01QCi0JCQkvKiAKLQkJCSAq IFdlIGNhbid0IGNhbGwgY2NfY2NlX2NsZWFudXAgaGVyZSBzaW5jZQotCQkJICogaWYgd2UgZG8g aXQgd2lsbCByZW1vdmUgLmNlX2N1cnIgYW5kCi0JCQkgKiBpdHMgc3RpbGwgcnVubmluZy4gVGhp cyB3aWxsIHByZXZlbnQgYQotCQkJICogcmVzY2hlZHVsZSBvZiB0aGUgY2FsbG91dCB3aGVuIHRo ZSAKLQkJCSAqIGV4ZWN1dGlvbiBjb21wbGV0ZXMuCi0JCQkgKi8KLQkJCWNjX21pZ3JhdGlvbl9j cHUoY2MsIGRpcmVjdCkgPSBDUFVCTE9DSzsKLQkJCWNjX21pZ3JhdGlvbl90aW1lKGNjLCBkaXJl Y3QpID0gMDsKLQkJCWNjX21pZ3JhdGlvbl9wcmVjKGNjLCBkaXJlY3QpID0gMDsKLQkJCWNjX21p Z3JhdGlvbl9mdW5jKGNjLCBkaXJlY3QpID0gTlVMTDsKLQkJCWNjX21pZ3JhdGlvbl9hcmcoY2Ms IGRpcmVjdCkgPSBOVUxMOwotI2VuZGlmCi0JCQlDVFIzKEtUUl9DQUxMT1VULCAicG9zdHBvbmlu ZyBzdG9wICVwIGZ1bmMgJXAgYXJnICVwIiwKLQkJCSAgICBjLCBjLT5jX2Z1bmMsIGMtPmNfYXJn KTsKLQkJCUNDX1VOTE9DSyhjYyk7Ci0JCQlyZXR1cm4gKDApOwotCQl9Ci0JCUNUUjMoS1RSX0NB TExPVVQsICJmYWlsZWQgdG8gc3RvcCAlcCBmdW5jICVwIGFyZyAlcCIsCi0JCSAgICBjLCBjLT5j X2Z1bmMsIGMtPmNfYXJnKTsKIAkJQ0NfVU5MT0NLKGNjKTsKLQkJS0FTU0VSVCghc3FfbG9ja2Vk LCAoInNsZWVwcXVldWUgY2hhaW4gc3RpbGwgbG9ja2VkIikpOwotCQlyZXR1cm4gKDApOworCX0g ZWxzZSB7CisJCWNhbGxvdXRfdW5sb2NrX2NsaWVudChjLT5jX2ZsYWdzLCBjLT5jX2xvY2spOwog CX0KLQlpZiAoc3FfbG9ja2VkKQotCQlzbGVlcHFfcmVsZWFzZSgmY2NfZXhlY193YWl0aW5nKGNj LCBkaXJlY3QpKTsKLQotCWMtPmNfaWZsYWdzICY9IH5DQUxMT1VUX1BFTkRJTkc7Ci0JYy0+Y19m bGFncyAmPSB+Q0FMTE9VVF9BQ1RJVkU7CiAKIAlDVFIzKEtUUl9DQUxMT1VULCAiY2FuY2VsbGVk ICVwIGZ1bmMgJXAgYXJnICVwIiwKIAkgICAgYywgYy0+Y19mdW5jLCBjLT5jX2FyZyk7Ci0JaWYg KG5vdF9vbl9hX2xpc3QgPT0gMCkgewotCQlpZiAoKGMtPmNfaWZsYWdzICYgQ0FMTE9VVF9QUk9D RVNTRUQpID09IDApIHsKLQkJCWlmIChjY19leGVjX25leHQoY2MpID09IGMpCi0JCQkJY2NfZXhl Y19uZXh0KGNjKSA9IExJU1RfTkVYVChjLCBjX2xpbmtzLmxlKTsKLQkJCUxJU1RfUkVNT1ZFKGMs IGNfbGlua3MubGUpOwotCQl9IGVsc2UgewotCQkJVEFJTFFfUkVNT1ZFKCZjYy0+Y2NfZXhwaXJl cSwgYywgY19saW5rcy50cWUpOwotCQl9Ci0JfQotCWNhbGxvdXRfY2NfZGVsKGMsIGNjKTsKLQlD Q19VTkxPQ0soY2MpOwotCXJldHVybiAoMSk7CisKKwlyZXR1cm4gKGNhbmNlbGxlZCAmIENBTExP VVRfUkVUX0NBTkNFTExFRCk7CiB9CiAKIHZvaWQKIGNhbGxvdXRfaW5pdChzdHJ1Y3QgY2FsbG91 dCAqYywgaW50IG1wc2FmZSkKIHsKLQliemVybyhjLCBzaXplb2YgKmMpOwogCWlmIChtcHNhZmUp IHsKLQkJYy0+Y19sb2NrID0gTlVMTDsKLQkJYy0+Y19pZmxhZ3MgPSBDQUxMT1VUX1JFVFVSTlVO TE9DS0VEOworCQlfY2FsbG91dF9pbml0X2xvY2soYywgTlVMTCwgQ0FMTE9VVF9SRVRVUk5VTkxP Q0tFRCk7CiAJfSBlbHNlIHsKLQkJYy0+Y19sb2NrID0gJkdpYW50LmxvY2tfb2JqZWN0OwotCQlj LT5jX2lmbGFncyA9IDA7CisJCV9jYWxsb3V0X2luaXRfbG9jayhjLCAmR2lhbnQubG9ja19vYmpl Y3QsIDApOwogCX0KLQljLT5jX2NwdSA9IHRpbWVvdXRfY3B1OwogfQogCiB2b2lkCiBfY2FsbG91 dF9pbml0X2xvY2soc3RydWN0IGNhbGxvdXQgKmMsIHN0cnVjdCBsb2NrX29iamVjdCAqbG9jaywg aW50IGZsYWdzKQogewogCWJ6ZXJvKGMsIHNpemVvZiAqYyk7CisJS0FTU0VSVCgoZmxhZ3MgJiB+ Q0FMTE9VVF9SRVRVUk5VTkxPQ0tFRCkgPT0gMCwKKwkgICAgKCJjYWxsb3V0X2luaXRfbG9jazog YmFkIGZsYWdzIDB4JTA4eCIsIGZsYWdzKSk7CisJZmxhZ3MgJj0gQ0FMTE9VVF9SRVRVUk5VTkxP Q0tFRDsKKwlpZiAobG9jayAhPSBOVUxMKSB7CisJCXN0cnVjdCBsb2NrX2NsYXNzICpjbGFzcyA9 IExPQ0tfQ0xBU1MobG9jayk7CisJCWlmIChjbGFzcyA9PSAmbG9ja19jbGFzc19tdHhfc2xlZXAp CisJCQlmbGFncyB8PSBDQUxMT1VUX1NFVF9MQyhDQUxMT1VUX0xDX01VVEVYKTsKKwkJZWxzZSBp ZiAoY2xhc3MgPT0gJmxvY2tfY2xhc3NfbXR4X3NwaW4pCisJCQlmbGFncyB8PSBDQUxMT1VUX1NF VF9MQyhDQUxMT1VUX0xDX1NQSU4pOworCQllbHNlIGlmIChjbGFzcyA9PSAmbG9ja19jbGFzc19y bSkKKwkJCWZsYWdzIHw9IENBTExPVVRfU0VUX0xDKENBTExPVVRfTENfUk0pOworCQllbHNlIGlm IChjbGFzcyA9PSAmbG9ja19jbGFzc19ydykKKwkJCWZsYWdzIHw9IENBTExPVVRfU0VUX0xDKENB TExPVVRfTENfUlcpOworCQllbHNlCisJCQlwYW5pYygiY2FsbG91dF9pbml0X2xvY2s6IFVuc3Vw cG9ydGVkIGxvY2sgY2xhc3MgJyVzJ1xuIiwgY2xhc3MtPmxjX25hbWUpOworCX0gZWxzZSB7CisJ CWZsYWdzIHw9IENBTExPVVRfU0VUX0xDKENBTExPVVRfTENfVU5VU0VEXzApOworCX0KIAljLT5j X2xvY2sgPSBsb2NrOwotCUtBU1NFUlQoKGZsYWdzICYgfihDQUxMT1VUX1JFVFVSTlVOTE9DS0VE IHwgQ0FMTE9VVF9TSEFSRURMT0NLKSkgPT0gMCwKLQkgICAgKCJjYWxsb3V0X2luaXRfbG9jazog YmFkIGZsYWdzICVkIiwgZmxhZ3MpKTsKLQlLQVNTRVJUKGxvY2sgIT0gTlVMTCB8fCAoZmxhZ3Mg JiBDQUxMT1VUX1JFVFVSTlVOTE9DS0VEKSA9PSAwLAotCSAgICAoImNhbGxvdXRfaW5pdF9sb2Nr OiBDQUxMT1VUX1JFVFVSTlVOTE9DS0VEIHdpdGggbm8gbG9jayIpKTsKLQlLQVNTRVJUKGxvY2sg PT0gTlVMTCB8fCAhKExPQ0tfQ0xBU1MobG9jayktPmxjX2ZsYWdzICYKLQkgICAgKExDX1NQSU5M T0NLIHwgTENfU0xFRVBBQkxFKSksICgiJXM6IGludmFsaWQgbG9jayBjbGFzcyIsCi0JICAgIF9f ZnVuY19fKSk7Ci0JYy0+Y19pZmxhZ3MgPSBmbGFncyAmIChDQUxMT1VUX1JFVFVSTlVOTE9DS0VE IHwgQ0FMTE9VVF9TSEFSRURMT0NLKTsKKwljLT5jX2ZsYWdzID0gZmxhZ3M7CiAJYy0+Y19jcHUg PSB0aW1lb3V0X2NwdTsKIH0KIApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvaHBzX2hlYWQvc3lzL2tl cm4va2Vybl9jb25kdmFyLmMgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX2NvbmR2 YXIuYwotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX2NvbmR2YXIuYworKysg Yi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX2NvbmR2YXIuYwpAQCAtMzEzLDE1ICsz MTMsMTMgQEAKIAlEUk9QX0dJQU5UKCk7CiAKIAlzbGVlcHFfYWRkKGN2cCwgbG9jaywgY3ZwLT5j dl9kZXNjcmlwdGlvbiwgU0xFRVBRX0NPTkRWQVIsIDApOworCXNsZWVwcV9yZWxlYXNlKGN2cCk7 CiAJc2xlZXBxX3NldF90aW1lb3V0X3NidChjdnAsIHNidCwgcHIsIGZsYWdzKTsKIAlpZiAobG9j ayAhPSAmR2lhbnQubG9ja19vYmplY3QpIHsKLQkJaWYgKGNsYXNzLT5sY19mbGFncyAmIExDX1NM RUVQQUJMRSkKLQkJCXNsZWVwcV9yZWxlYXNlKGN2cCk7CiAJCVdJVE5FU1NfU0FWRShsb2NrLCBs b2NrX3dpdG5lc3MpOwogCQlsb2NrX3N0YXRlID0gY2xhc3MtPmxjX3VubG9jayhsb2NrKTsKLQkJ aWYgKGNsYXNzLT5sY19mbGFncyAmIExDX1NMRUVQQUJMRSkKLQkJCXNsZWVwcV9sb2NrKGN2cCk7 CiAJfQorCXNsZWVwcV9sb2NrKGN2cCk7CiAJcnZhbCA9IHNsZWVwcV90aW1lZHdhaXQoY3ZwLCAw KTsKIAogI2lmZGVmIEtUUkFDRQpAQCAtMzgzLDE1ICszODEsMTMgQEAKIAogCXNsZWVwcV9hZGQo Y3ZwLCBsb2NrLCBjdnAtPmN2X2Rlc2NyaXB0aW9uLCBTTEVFUFFfQ09ORFZBUiB8CiAJICAgIFNM RUVQUV9JTlRFUlJVUFRJQkxFLCAwKTsKKwlzbGVlcHFfcmVsZWFzZShjdnApOwogCXNsZWVwcV9z ZXRfdGltZW91dF9zYnQoY3ZwLCBzYnQsIHByLCBmbGFncyk7CiAJaWYgKGxvY2sgIT0gJkdpYW50 LmxvY2tfb2JqZWN0KSB7Ci0JCWlmIChjbGFzcy0+bGNfZmxhZ3MgJiBMQ19TTEVFUEFCTEUpCi0J CQlzbGVlcHFfcmVsZWFzZShjdnApOwogCQlXSVRORVNTX1NBVkUobG9jaywgbG9ja193aXRuZXNz KTsKIAkJbG9ja19zdGF0ZSA9IGNsYXNzLT5sY191bmxvY2sobG9jayk7Ci0JCWlmIChjbGFzcy0+ bGNfZmxhZ3MgJiBMQ19TTEVFUEFCTEUpCi0JCQlzbGVlcHFfbG9jayhjdnApOwogCX0KKwlzbGVl cHFfbG9jayhjdnApOwogCXJ2YWwgPSBzbGVlcHFfdGltZWR3YWl0X3NpZyhjdnAsIDApOwogCiAj aWZkZWYgS1RSQUNFCmRpZmYgLS1naXQgYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9pbml0 X21haW4uYyBiL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL2luaXRfbWFpbi5jCi0tLSBhL3By b2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL2luaXRfbWFpbi5jCisrKyBiL3Byb2plY3RzL2hwc19o ZWFkL3N5cy9rZXJuL2luaXRfbWFpbi5jCkBAIC01MDYsNyArNTA2LDggQEAKIAogCWNhbGxvdXRf aW5pdF9tdHgoJnAtPnBfaXRjYWxsb3V0LCAmcC0+cF9tdHgsIDApOwogCWNhbGxvdXRfaW5pdF9t dHgoJnAtPnBfbGltY28sICZwLT5wX210eCwgMCk7Ci0JY2FsbG91dF9pbml0KCZ0ZC0+dGRfc2xw Y2FsbG91dCwgQ0FMTE9VVF9NUFNBRkUpOworCW10eF9pbml0KCZ0ZC0+dGRfc2xwbXV0ZXgsICJ0 ZF9zbHBtdXRleCIsIE5VTEwsIE1UWF9TUElOKTsKKwljYWxsb3V0X2luaXRfbXR4KCZ0ZC0+dGRf c2xwY2FsbG91dCwgJnRkLT50ZF9zbHBtdXRleCwgMCk7CiAKIAkvKiBDcmVhdGUgY3JlZGVudGlh bHMuICovCiAJbmV3Y3JlZCA9IGNyZ2V0KCk7CmRpZmYgLS1naXQgYS9wcm9qZWN0cy9ocHNfaGVh ZC9zeXMva2Vybi9rZXJuX3N3aXRjaC5jIGIvcHJvamVjdHMvaHBzX2hlYWQvc3lzL2tlcm4va2Vy bl9zd2l0Y2guYwotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX3N3aXRjaC5j CisrKyBiL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL2tlcm5fc3dpdGNoLmMKQEAgLTkzLDgg KzkzLDYgQEAKICAgICAmRFBDUFVfTkFNRShzY2hlZF9zd2l0Y2hfc3RhdHNbU1dUX1RVUk5TVElM RV0pLCAiIik7CiBTQ0hFRF9TVEFUX0RFRklORV9WQVIoc2xlZXBxLAogICAgICZEUENQVV9OQU1F KHNjaGVkX3N3aXRjaF9zdGF0c1tTV1RfU0xFRVBRXSksICIiKTsKLVNDSEVEX1NUQVRfREVGSU5F X1ZBUihzbGVlcHF0aW1vLAotICAgICZEUENQVV9OQU1FKHNjaGVkX3N3aXRjaF9zdGF0c1tTV1Rf U0xFRVBRVElNT10pLCAiIik7CiBTQ0hFRF9TVEFUX0RFRklORV9WQVIocmVsaW5xdWlzaCwgCiAg ICAgJkRQQ1BVX05BTUUoc2NoZWRfc3dpdGNoX3N0YXRzW1NXVF9SRUxJTlFVSVNIXSksICIiKTsK IFNDSEVEX1NUQVRfREVGSU5FX1ZBUihuZWVkcmVzY2hlZCwKZGlmZiAtLWdpdCBhL3Byb2plY3Rz L2hwc19oZWFkL3N5cy9rZXJuL2tlcm5fdGhyZWFkLmMgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMv a2Vybi9rZXJuX3RocmVhZC5jCi0tLSBhL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL2tlcm5f dGhyZWFkLmMKKysrIGIvcHJvamVjdHMvaHBzX2hlYWQvc3lzL2tlcm4va2Vybl90aHJlYWQuYwpA QCAtMTQ5LDYgKzE0OSw5IEBACiAJYXVkaXRfdGhyZWFkX2FsbG9jKHRkKTsKICNlbmRpZgogCXVt dHhfdGhyZWFkX2FsbG9jKHRkKTsKKworCW10eF9pbml0KCZ0ZC0+dGRfc2xwbXV0ZXgsICJ0ZF9z bHBtdXRleCIsIE5VTEwsIE1UWF9TUElOKTsKKwljYWxsb3V0X2luaXRfbXR4KCZ0ZC0+dGRfc2xw Y2FsbG91dCwgJnRkLT50ZF9zbHBtdXRleCwgMCk7CiAJcmV0dXJuICgwKTsKIH0KIApAQCAtMTYy LDYgKzE2NSwxMCBAQAogCiAJdGQgPSAoc3RydWN0IHRocmVhZCAqKW1lbTsKIAorCS8qIG1ha2Ug c3VyZSB0byBkcmFpbiBhbnkgdXNlIG9mIHRoZSAidGQtPnRkX3NscGNhbGxvdXQiICovCisJY2Fs bG91dF9kcmFpbigmdGQtPnRkX3NscGNhbGxvdXQpOworCW10eF9kZXN0cm95KCZ0ZC0+dGRfc2xw bXV0ZXgpOworCiAjaWZkZWYgSU5WQVJJQU5UUwogCS8qIFZlcmlmeSB0aGF0IHRoaXMgdGhyZWFk IGlzIGluIGEgc2FmZSBzdGF0ZSB0byBmcmVlLiAqLwogCXN3aXRjaCAodGQtPnRkX3N0YXRlKSB7 CkBAIC01NDQsNyArNTUxLDYgQEAKIAlMSVNUX0lOSVQoJnRkLT50ZF9scHJvZlswXSk7CiAJTElT VF9JTklUKCZ0ZC0+dGRfbHByb2ZbMV0pOwogCXNpZ3F1ZXVlX2luaXQoJnRkLT50ZF9zaWdxdWV1 ZSwgcCk7Ci0JY2FsbG91dF9pbml0KCZ0ZC0+dGRfc2xwY2FsbG91dCwgQ0FMTE9VVF9NUFNBRkUp OwogCVRBSUxRX0lOU0VSVF9UQUlMKCZwLT5wX3RocmVhZHMsIHRkLCB0ZF9wbGlzdCk7CiAJcC0+ cF9udW10aHJlYWRzKys7CiB9CmRpZmYgLS1naXQgYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vy bi9rZXJuX2Nsb2Nrc291cmNlLmMgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX2Ns b2Nrc291cmNlLmMKLS0tIGEvcHJvamVjdHMvaHBzX2hlYWQvc3lzL2tlcm4va2Vybl9jbG9ja3Nv dXJjZS5jCisrKyBiL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJuL2tlcm5fY2xvY2tzb3VyY2Uu YwpAQCAtMTYwLDYgKzE2MCw5IEBACiAJaW50IHVzZXJtb2RlOwogCWludCBkb25lLCBydW5zOwog CisJS0FTU0VSVChjdXJ0aHJlYWQtPnRkX2NyaXRuZXN0ICE9IDAsCisJICAgICgiTXVzdCBiZSBp biBhIGNyaXRpY2FsIHNlY3Rpb24iKSk7CisKIAlDVFIzKEtUUl9TUEFSRTIsICJoYW5kbGUgYXQg JWQ6ICBub3cgICVkLiUwOHgiLAogCSAgICBjdXJjcHUsIChpbnQpKG5vdyA+PiAzMiksICh1X2lu dCkobm93ICYgMHhmZmZmZmZmZikpOwogCWRvbmUgPSAwOwpkaWZmIC0tZ2l0IGEvcHJvamVjdHMv aHBzX2hlYWQvc3lzL2tlcm4va2Vybl9sb2NrLmMgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vy bi9rZXJuX2xvY2suYwotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX2xvY2su YworKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX2xvY2suYwpAQCAtMjEwLDkg KzIxMCwxMSBAQAogCUdJQU5UX1NBVkUoKTsKIAlzbGVlcHFfYWRkKCZsay0+bG9ja19vYmplY3Qs IE5VTEwsIHdtZXNnLCBTTEVFUFFfTEsgfCAoY2F0Y2ggPwogCSAgICBTTEVFUFFfSU5URVJSVVBU SUJMRSA6IDApLCBxdWV1ZSk7Ci0JaWYgKChmbGFncyAmIExLX1RJTUVMT0NLKSAmJiB0aW1vKQor CWlmICgoZmxhZ3MgJiBMS19USU1FTE9DSykgJiYgdGltbykgeworCQlzbGVlcHFfcmVsZWFzZSgm bGstPmxvY2tfb2JqZWN0KTsKIAkJc2xlZXBxX3NldF90aW1lb3V0KCZsay0+bG9ja19vYmplY3Qs IHRpbW8pOwotCisJCXNsZWVwcV9sb2NrKCZsay0+bG9ja19vYmplY3QpOworCX0KIAkvKgogCSAq IERlY2lzaW9uYWwgc3dpdGNoIGZvciByZWFsIHNsZWVwaW5nLgogCSAqLwpkaWZmIC0tZ2l0IGEv cHJvamVjdHMvaHBzX2hlYWQvc3lzL2tlcm4va2Vybl9zeW5jaC5jIGIvcHJvamVjdHMvaHBzX2hl YWQvc3lzL2tlcm4va2Vybl9zeW5jaC5jCi0tLSBhL3Byb2plY3RzL2hwc19oZWFkL3N5cy9rZXJu L2tlcm5fc3luY2guYworKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zeXMva2Vybi9rZXJuX3N5bmNo LmMKQEAgLTIxOSwxMiArMjE5LDE2IEBACiAJICogcmV0dXJuIGZyb20gY3Vyc2lnKCkuCiAJICov CiAJc2xlZXBxX2FkZChpZGVudCwgbG9jaywgd21lc2csIHNsZWVwcV9mbGFncywgMCk7Ci0JaWYg KHNidCAhPSAwKQotCQlzbGVlcHFfc2V0X3RpbWVvdXRfc2J0KGlkZW50LCBzYnQsIHByLCBmbGFn cyk7CiAJaWYgKGxvY2sgIT0gTlVMTCAmJiBjbGFzcy0+bGNfZmxhZ3MgJiBMQ19TTEVFUEFCTEUp IHsKIAkJc2xlZXBxX3JlbGVhc2UoaWRlbnQpOwogCQlXSVRORVNTX1NBVkUobG9jaywgbG9ja193 aXRuZXNzKTsKIAkJbG9ja19zdGF0ZSA9IGNsYXNzLT5sY191bmxvY2sobG9jayk7CisJCWlmIChz YnQgIT0gMCkKKwkJCXNsZWVwcV9zZXRfdGltZW91dF9zYnQoaWRlbnQsIHNidCwgcHIsIGZsYWdz KTsKKwkJc2xlZXBxX2xvY2soaWRlbnQpOworCX0gZWxzZSBpZiAoc2J0ICE9IDApIHsKKwkJc2xl ZXBxX3JlbGVhc2UoaWRlbnQpOworCQlzbGVlcHFfc2V0X3RpbWVvdXRfc2J0KGlkZW50LCBzYnQs IHByLCBmbGFncyk7CiAJCXNsZWVwcV9sb2NrKGlkZW50KTsKIAl9CiAJaWYgKHNidCAhPSAwICYm IGNhdGNoKQpAQCAtMjg5LDggKzI5MywxMSBAQAogCSAqIFdlIHB1dCBvdXJzZWx2ZXMgb24gdGhl IHNsZWVwIHF1ZXVlIGFuZCBzdGFydCBvdXIgdGltZW91dC4KIAkgKi8KIAlzbGVlcHFfYWRkKGlk ZW50LCAmbXR4LT5sb2NrX29iamVjdCwgd21lc2csIFNMRUVQUV9TTEVFUCwgMCk7Ci0JaWYgKHNi dCAhPSAwKQorCWlmIChzYnQgIT0gMCkgeworCQlzbGVlcHFfcmVsZWFzZShpZGVudCk7CiAJCXNs ZWVwcV9zZXRfdGltZW91dF9zYnQoaWRlbnQsIHNidCwgcHIsIGZsYWdzKTsKKwkJc2xlZXBxX2xv Y2soaWRlbnQpOworCX0KIAogCS8qCiAJICogQ2FuJ3QgY2FsbCBrdHJhY2Ugd2l0aCBhbnkgc3Bp biBsb2NrcyBoZWxkIHNvIGl0IGNhbiBsb2NrIHRoZQpkaWZmIC0tZ2l0IGEvcHJvamVjdHMvaHBz X2hlYWQvc2hhcmUvbWFuL21hbjkvTWFrZWZpbGUgYi9wcm9qZWN0cy9ocHNfaGVhZC9zaGFyZS9t YW4vbWFuOS9NYWtlZmlsZQotLS0gYS9wcm9qZWN0cy9ocHNfaGVhZC9zaGFyZS9tYW4vbWFuOS9N YWtlZmlsZQorKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zaGFyZS9tYW4vbWFuOS9NYWtlZmlsZQpA QCAtMTU3Myw2ICsxNTczLDcgQEAKIAl0aW1lb3V0LjkgY2FsbG91dF9hY3RpdmUuOSBcCiAJdGlt ZW91dC45IGNhbGxvdXRfZGVhY3RpdmF0ZS45IFwKIAl0aW1lb3V0LjkgY2FsbG91dF9kcmFpbi45 IFwKKwl0aW1lb3V0LjkgY2FsbG91dF9kcmFpbl9hc3luYy45IFwKIAl0aW1lb3V0LjkgY2FsbG91 dF9oYW5kbGVfaW5pdC45IFwKIAl0aW1lb3V0LjkgY2FsbG91dF9pbml0LjkgXAogCXRpbWVvdXQu OSBjYWxsb3V0X2luaXRfbXR4LjkgXApkaWZmIC0tZ2l0IGEvcHJvamVjdHMvaHBzX2hlYWQvc2hh cmUvbWFuL21hbjkvdGltZW91dC45IGIvcHJvamVjdHMvaHBzX2hlYWQvc2hhcmUvbWFuL21hbjkv dGltZW91dC45Ci0tLSBhL3Byb2plY3RzL2hwc19oZWFkL3NoYXJlL21hbi9tYW45L3RpbWVvdXQu OQorKysgYi9wcm9qZWN0cy9ocHNfaGVhZC9zaGFyZS9tYW4vbWFuOS90aW1lb3V0LjkKQEAgLTI5 LDEzICsyOSwxNCBAQAogLlwiCiAuXCIgJEZyZWVCU0QkCiAuXCIKLS5EZCBPY3RvYmVyIDgsIDIw MTQKKy5EZCBKYW51YXJ5IDI0LCAyMDE1CiAuRHQgVElNRU9VVCA5CiAuT3MKIC5TaCBOQU1FCiAu Tm0gY2FsbG91dF9hY3RpdmUgLAogLk5tIGNhbGxvdXRfZGVhY3RpdmF0ZSAsCiAuTm0gY2FsbG91 dF9kcmFpbiAsCisuTm0gY2FsbG91dF9kcmFpbl9hc3luYyAsCiAuTm0gY2FsbG91dF9oYW5kbGVf aW5pdCAsCiAuTm0gY2FsbG91dF9pbml0ICwKIC5ObSBjYWxsb3V0X2luaXRfbXR4ICwKQEAgLTYz LDI1NiArNjQsMjM0IEBACiAuSW4gc3lzL3N5c3RtLmgKIC5CZCAtbGl0ZXJhbAogdHlwZWRlZiB2 b2lkIHRpbWVvdXRfdCAodm9pZCAqKTsKK3R5cGVkZWYgdm9pZCBjYWxsb3V0X2Z1bmNfdCAodm9p ZCAqKTsKIC5FZAotLkZ0IGludAotLkZuIGNhbGxvdXRfYWN0aXZlICJzdHJ1Y3QgY2FsbG91dCAq YyIKLS5GdCB2b2lkCi0uRm4gY2FsbG91dF9kZWFjdGl2YXRlICJzdHJ1Y3QgY2FsbG91dCAqYyIK LS5GdCBpbnQKLS5GbiBjYWxsb3V0X2RyYWluICJzdHJ1Y3QgY2FsbG91dCAqYyIKLS5GdCB2b2lk Ci0uRm4gY2FsbG91dF9oYW5kbGVfaW5pdCAic3RydWN0IGNhbGxvdXRfaGFuZGxlICpoYW5kbGUi Ci0uQmQgLWxpdGVyYWwKLXN0cnVjdCBjYWxsb3V0X2hhbmRsZSBoYW5kbGUgPSBDQUxMT1VUX0hB TkRMRV9JTklUSUFMSVpFUigmaGFuZGxlKTsKLS5FZAotLkZ0IHZvaWQKLS5GbiBjYWxsb3V0X2lu aXQgInN0cnVjdCBjYWxsb3V0ICpjIiAiaW50IG1wc2FmZSIKLS5GdCB2b2lkCi0uRm4gY2FsbG91 dF9pbml0X210eCAic3RydWN0IGNhbGxvdXQgKmMiICJzdHJ1Y3QgbXR4ICptdHgiICJpbnQgZmxh Z3MiCi0uRnQgdm9pZAotLkZuIGNhbGxvdXRfaW5pdF9ybSAic3RydWN0IGNhbGxvdXQgKmMiICJz dHJ1Y3Qgcm1sb2NrICpybSIgImludCBmbGFncyIKLS5GdCB2b2lkCi0uRm4gY2FsbG91dF9pbml0 X3J3ICJzdHJ1Y3QgY2FsbG91dCAqYyIgInN0cnVjdCByd2xvY2sgKnJ3IiAiaW50IGZsYWdzIgot LkZ0IGludAotLkZuIGNhbGxvdXRfcGVuZGluZyAic3RydWN0IGNhbGxvdXQgKmMiCi0uRnQgaW50 Ci0uRm4gY2FsbG91dF9yZXNldCAic3RydWN0IGNhbGxvdXQgKmMiICJpbnQgdGlja3MiICJ0aW1l b3V0X3QgKmZ1bmMiICJ2b2lkICphcmciCi0uRnQgaW50Ci0uRm4gY2FsbG91dF9yZXNldF9jdXJj cHUgInN0cnVjdCBjYWxsb3V0ICpjIiAiaW50IHRpY2tzIiAidGltZW91dF90ICpmdW5jIiBcCi0i dm9pZCAqYXJnIgotLkZ0IGludAotLkZuIGNhbGxvdXRfcmVzZXRfb24gInN0cnVjdCBjYWxsb3V0 ICpjIiAiaW50IHRpY2tzIiAidGltZW91dF90ICpmdW5jIiBcCi0idm9pZCAqYXJnIiAiaW50IGNw dSIKLS5GdCBpbnQKLS5GbiBjYWxsb3V0X3Jlc2V0X3NidCAic3RydWN0IGNhbGxvdXQgKmMiICJz YmludGltZV90IHNidCIgXAotInNiaW50aW1lX3QgcHIiICJ0aW1lb3V0X3QgKmZ1bmMiICJ2b2lk ICphcmciICJpbnQgZmxhZ3MiCi0uRnQgaW50Ci0uRm4gY2FsbG91dF9yZXNldF9zYnRfY3VyY3B1 ICJzdHJ1Y3QgY2FsbG91dCAqYyIgInNiaW50aW1lX3Qgc2J0IiBcCi0ic2JpbnRpbWVfdCBwciIg InRpbWVvdXRfdCAqZnVuYyIgInZvaWQgKmFyZyIgImludCBmbGFncyIKLS5GdCBpbnQKLS5GbiBj YWxsb3V0X3Jlc2V0X3NidF9vbiAic3RydWN0IGNhbGxvdXQgKmMiICJzYmludGltZV90IHNidCIg XAotInNiaW50aW1lX3QgcHIiICJ0aW1lb3V0X3QgKmZ1bmMiICJ2b2lkICphcmciICJpbnQgY3B1 IiAiaW50IGZsYWdzIgotLkZ0IGludAotLkZuIGNhbGxvdXRfc2NoZWR1bGUgInN0cnVjdCBjYWxs b3V0ICpjIiAiaW50IHRpY2tzIgotLkZ0IGludAotLkZuIGNhbGxvdXRfc2NoZWR1bGVfY3VyY3B1 ICJzdHJ1Y3QgY2FsbG91dCAqYyIgImludCB0aWNrcyIKLS5GdCBpbnQKLS5GbiBjYWxsb3V0X3Nj aGVkdWxlX29uICJzdHJ1Y3QgY2FsbG91dCAqYyIgImludCB0aWNrcyIgImludCBjcHUiCi0uRnQg aW50Ci0uRm4gY2FsbG91dF9zY2hlZHVsZV9zYnQgInN0cnVjdCBjYWxsb3V0ICpjIiAic2JpbnRp bWVfdCBzYnQiIFwKLSJzYmludGltZV90IHByIiAiaW50IGZsYWdzIgotLkZ0IGludAotLkZuIGNh bGxvdXRfc2NoZWR1bGVfc2J0X2N1cmNwdSAic3RydWN0IGNhbGxvdXQgKmMiICJzYmludGltZV90 IHNidCIgXAotInNiaW50aW1lX3QgcHIiICJpbnQgZmxhZ3MiCi0uRnQgaW50Ci0uRm4gY2FsbG91 dF9zY2hlZHVsZV9zYnRfb24gInN0cnVjdCBjYWxsb3V0ICpjIiAic2JpbnRpbWVfdCBzYnQiIFwK LSJzYmludGltZV90IHByIiAiaW50IGNwdSIgImludCBmbGFncyIKLS5GdCBpbnQKLS5GbiBjYWxs b3V0X3N0b3AgInN0cnVjdCBjYWxsb3V0ICpjIgotLkZ0IHN0cnVjdCBjYWxsb3V0X2hhbmRsZQot LkZuIHRpbWVvdXQgInRpbWVvdXRfdCAqZnVuYyIgInZvaWQgKmFyZyIgImludCB0aWNrcyIKLS5G dCB2b2lkCi0uRm4gdW50aW1lb3V0ICJ0aW1lb3V0X3QgKmZ1bmMiICJ2b2lkICphcmciICJzdHJ1 Y3QgY2FsbG91dF9oYW5kbGUgaGFuZGxlIgogLlNoIERFU0NSSVBUSU9OCiBUaGUKIC5ObSBjYWxs b3V0Ci1BUEkgaXMgdXNlZCB0byBzY2hlZHVsZSBhIGNhbGwgdG8gYW4gYXJiaXRyYXJ5IGZ1bmN0 aW9uIGF0IGEgc3BlY2lmaWMKLXRpbWUgaW4gdGhlIGZ1dHVyZS4KLUNvbnN1bWVycyBvZiB0aGlz IEFQSSBhcmUgcmVxdWlyZWQgdG8gYWxsb2NhdGUgYSBjYWxsb3V0IHN0cnVjdHVyZQotLlBxIHN0 cnVjdCBjYWxsb3V0CitBUEkgaXMgdXNlZCB0byBzY2hlZHVsZSBhIG9uZS10aW1lIGNhbGwgdG8g YW4gYXJiaXRyYXJ5IGZ1bmN0aW9uIGF0IGEKK3NwZWNpZmljIHRpbWUgaW4gdGhlIGZ1dHVyZS4K K0NvbnN1bWVycyBvZiB0aGlzIEFQSSBhcmUgcmVxdWlyZWQgdG8gYWxsb2NhdGUgYQorLkZ0IHN0 cnVjdCBjYWxsb3V0CiBmb3IgZWFjaCBwZW5kaW5nIGZ1bmN0aW9uIGludm9jYXRpb24uCi1UaGlz IHN0cnVjdHVyZSBzdG9yZXMgc3RhdGUgYWJvdXQgdGhlIHBlbmRpbmcgZnVuY3Rpb24gaW52b2Nh dGlvbiBpbmNsdWRpbmcKLXRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYW5kIHRoZSB0aW1lIGF0 IHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgaW52b2tlZC4KLVBlbmRpbmcgZnVuY3Rpb24g Y2FsbHMgY2FuIGJlIGNhbmNlbGxlZCBvciByZXNjaGVkdWxlZCB0byBhIGRpZmZlcmVudCB0aW1l LgotSW4gYWRkaXRpb24sCi1hIGNhbGxvdXQgc3RydWN0dXJlIG1heSBiZSByZXVzZWQgdG8gc2No ZWR1bGUgYSBuZXcgZnVuY3Rpb24gY2FsbCBhZnRlciBhCi1zY2hlZHVsZWQgY2FsbCBpcyBjb21w bGV0ZWQuCi0uUHAKLUNhbGxvdXRzIG9ubHkgcHJvdmlkZSBhIHNpbmdsZS1zaG90IG1vZGUuCi1J ZiBhIGNvbnN1bWVyIHJlcXVpcmVzIGEgcGVyaW9kaWMgdGltZXIsCi1pdCBtdXN0IGV4cGxpY2l0 bHkgcmVzY2hlZHVsZSBlYWNoIGZ1bmN0aW9uIGNhbGwuCi1UaGlzIGlzIG5vcm1hbGx5IGRvbmUg YnkgcmVzY2hlZHVsaW5nIHRoZSBzdWJzZXF1ZW50IGNhbGwgd2l0aGluIHRoZSBjYWxsZWQKLWZ1 bmN0aW9uLgotLlBwCi1DYWxsb3V0IGZ1bmN0aW9ucyBtdXN0IG5vdCBzbGVlcC4KLVRoZXkgbWF5 IG5vdCBhY3F1aXJlIHNsZWVwYWJsZSBsb2NrcywKLXdhaXQgb24gY29uZGl0aW9uIHZhcmlhYmxl cywKLXBlcmZvcm0gYmxvY2tpbmcgYWxsb2NhdGlvbiByZXF1ZXN0cywKLW9yIGludm9rZSBhbnkg b3RoZXIgYWN0aW9uIHRoYXQgbWlnaHQgc2xlZXAuCi0uUHAKLUVhY2ggY2FsbG91dCBzdHJ1Y3R1 cmUgbXVzdCBiZSBpbml0aWFsaXplZCBieQotLkZuIGNhbGxvdXRfaW5pdCAsCi0uRm4gY2FsbG91 dF9pbml0X210eCAsCi0uRm4gY2FsbG91dF9pbml0X3JtICwKLW9yCi0uRm4gY2FsbG91dF9pbml0 X3J3Ci1iZWZvcmUgaXQgaXMgcGFzc2VkIHRvIGFueSBvZiB0aGUgb3RoZXIgY2FsbG91dCBmdW5j dGlvbnMuCiBUaGUKKy5GdCBzdHJ1Y3QgY2FsbG91dAorc3RvcmVzIHRoZSBmdWxsIHN0YXRlIGFi b3V0IGFueSBwZW5kaW5nIGZ1bmN0aW9uIGNhbGwgYW5kCittdXN0IGJlIGRyYWluZWQgYnkgYSBj YWxsIHRvCisuRm4gY2FsbG91dF9kcmFpbgorb3IKKy5GbiBjYWxsb3V0X2RyYWluX2FzeW5jCiti ZWZvcmUgZnJlZWluZy4KKy5TaCBJTklUSUFMSVpBVElPTgorLkZ0IHZvaWQKKy5GbiBjYWxsb3V0 X2hhbmRsZV9pbml0ICJzdHJ1Y3QgY2FsbG91dF9oYW5kbGUgKmhhbmRsZSIKK1RoaXMgZnVuY3Rp b24gaXMgZGVwcmVjYXRlZC4KK1BsZWFzZSB1c2UKIC5GbiBjYWxsb3V0X2luaXQKLWZ1bmN0aW9u IGluaXRpYWxpemVzIGEgY2FsbG91dCBzdHJ1Y3R1cmUgaW4KLS5GYSBjCi10aGF0IGlzIG5vdCBh c3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBsb2NrLgoraW5zdGVhZC4KK1RoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byBwcmVwYXJlIGEKKy5GdCBzdHJ1Y3QgY2FsbG91dF9oYW5kbGUKK2JlZm9yZSBp dCBjYW4gYmUgdXNlZCB0aGUgZmlyc3QgdGltZS4KK0lmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk IG9uIGEgcGVuZGluZyB0aW1lb3V0LCB0aGUgcGVuZGluZyB0aW1lb3V0CitjYW5ub3QgYmUgY2Fu Y2VsbGVkIGFuZCB0aGUKKy5GbiB1bnRpbWVvdXQKK2Z1bmN0aW9uIHdpbGwgcmV0dXJuIGFzIGlm IG5vIHRpbWVvdXQgd2FzIHBlbmRpbmcuCisuUHAKKy5GbiBDQUxMT1VUX0hBTkRMRV9JTklUSUFM SVpFUiAiJmhhbmRsZSIKK1RoaXMgbWFjcm8gaXMgZGVwcmVjYXRlZC4KK1RoaXMgbWFjcm8gaXMg dXNlZCB0byBzdGF0aWNhbGx5IGluaXRpYWxpemUgYQorLkZ0IHN0cnVjdCBjYWxsb3V0X2hhbmRs ZSAuCitQbGVhc2UgdXNlCisuRm4gY2FsbG91dF9pbml0CitpbnN0ZWFkLgorLlBwCisuRnQgdm9p ZAorLkZuIGNhbGxvdXRfaW5pdCAic3RydWN0IGNhbGxvdXQgKmMiICJpbnQgbXBzYWZlIgorVGhp cyBmdW5jdGlvbiBwcmVwYXJlcyBhCisuRnQgc3RydWN0IGNhbGxvdXQKK2JlZm9yZSBpdCBjYW4g YmUgdXNlZC4KK1RoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gdGhlIGNhbGxv dXQgaXMgcGVuZGluZyBhIHRpbWVvdXQuCiBJZiB0aGUKIC5GYSBtcHNhZmUKLWFyZ3VtZW50IGlz IHplcm8sCi10aGUgY2FsbG91dCBzdHJ1Y3R1cmUgaXMgbm90IGNvbnNpZGVyZWQgdG8gYmUKLS5E cSBtdWx0aS1wcm9jZXNzb3Igc2FmZSA7Ci1hbmQgdGhlIEdpYW50IGxvY2sgd2lsbCBiZSBhY3F1 aXJlZCBiZWZvcmUgY2FsbGluZyB0aGUgY2FsbG91dCBmdW5jdGlvbgotYW5kIHJlbGVhc2VkIHdo ZW4gdGhlIGNhbGxvdXQgZnVuY3Rpb24gcmV0dXJucy4KLS5QcAotVGhlCi0uRm4gY2FsbG91dF9p bml0X210eCAsCi0uRm4gY2FsbG91dF9pbml0X3JtICwKLWFuZAotLkZuIGNhbGxvdXRfaW5pdF9y dwotZnVuY3Rpb25zIGluaXRpYWxpemUgYSBjYWxsb3V0IHN0cnVjdHVyZSBpbgotLkZhIGMKLXRo YXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgbG9jay4KLVRoZSBsb2NrIGlzIHNwZWNp ZmllZCBieSB0aGUKLS5GYSBtdHggLAotLkZhIHJtICwKLW9yCi0uRmEgcncKLXBhcmFtZXRlci4K LVRoZSBhc3NvY2lhdGVkIGxvY2sgbXVzdCBiZSBoZWxkIHdoaWxlIHN0b3BwaW5nIG9yIHJlc2No ZWR1bGluZyB0aGUKLWNhbGxvdXQuCi1UaGUgY2FsbG91dCBzdWJzeXN0ZW0gYWNxdWlyZXMgdGhl IGFzc29jaWF0ZWQgbG9jayBiZWZvcmUgY2FsbGluZyB0aGUKLWNhbGxvdXQgZnVuY3Rpb24gYW5k IHJlbGVhc2VzIGl0IGFmdGVyIHRoZSBmdW5jdGlvbiByZXR1cm5zLgotSWYgdGhlIGNhbGxvdXQg d2FzIGNhbmNlbGxlZCB3aGlsZSB0aGUgY2FsbG91dCBzdWJzeXN0ZW0gd2FpdGVkIGZvciB0aGUK LWFzc29jaWF0ZWQgbG9jaywKLXRoZSBjYWxsb3V0IGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQsCi1h bmQgdGhlIGFzc29jaWF0ZWQgbG9jayBpcyByZWxlYXNlZC4KLVRoaXMgZW5zdXJlcyB0aGF0IHN0 b3BwaW5nIG9yIHJlc2NoZWR1bGluZyB0aGUgY2FsbG91dCB3aWxsIGFib3J0IGFueQotcHJldmlv dXNseSBzY2hlZHVsZWQgaW52b2NhdGlvbi4KLS5QcAotT25seSByZWd1bGFyIG11dGV4ZXMgbWF5 IGJlIHVzZWQgd2l0aAotLkZuIGNhbGxvdXRfaW5pdF9tdHggOwotc3BpbiBtdXRleGVzIGFyZSBu b3Qgc3VwcG9ydGVkLgotQSBzbGVlcGFibGUgcmVhZC1tb3N0bHkgbG9jawotLlBvCi1vbmUgaW5p dGlhbGl6ZWQgd2l0aCB0aGUKLS5EdiBSTV9TTEVFUEFCTEUKLWZsYWcKLS5QYwotbWF5IG5vdCBi ZSB1c2VkIHdpdGgKLS5GbiBjYWxsb3V0X2luaXRfcm0gLgotU2ltaWxhcmx5LCBvdGhlciBzbGVl cGFibGUgbG9jayB0eXBlcyBzdWNoIGFzCi0uWHIgc3ggOQotYW5kCi0uWHIgbG9ja21nciA5Ci1j YW5ub3QgYmUgdXNlZCB3aXRoIGNhbGxvdXRzIGJlY2F1c2Ugc2xlZXBpbmcgaXMgbm90IHBlcm1p dHRlZCBpbgotdGhlIGNhbGxvdXQgc3Vic3lzdGVtLgorYXJndW1lbnQgaXMgbm9uLXplcm8sIHRo ZSBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIHJ1bm5pbmcgdW5sb2NrZWQKK2FuZCB0aGUgY2Fs bGJhY2sgaXMgc28tY2FsbGVkICJtcHNhZmUiLgorLkJmIFN5CitJdCBpcyB0aGUgYXBwbGljYXRp b24ncyBlbnRpcmUgcmVzcG9uc2liaWxpdHkgdG8gbm90IGNhbGwgYW55CisuRm4gY2FsbG91dF94 eHgKK2Z1bmN0aW9ucywgaW5jbHVkaW5nIHRoZQorLkZuIGNhbGxvdXRfZHJhaW4KK2Z1bmN0aW9u LCBzaW11bHRhbmVvdXNseSBvbiB0aGUgc2FtZSBjYWxsb3V0IHdoZW4gdGhlCisuRmEgbXBzYWZl Cithcmd1bWVudCBpcyBub24temVyby4KK090aGVyd2lzZSwgdW5kZWZpbmVkIGJlaGF2aW9yIGNh biBoYXBwZW4uCitBdm9pZCBzaW11bHRhbmVvdXMgY2FsbHMgYnkgb2J0YWluaW5nIGFuIGV4Y2x1 c2l2ZSBsb2NrIGJlZm9yZSBjYWxsaW5nCithbnkKKy5GbiBjYWxsb3V0X3h4eAorZnVuY3Rpb25z IG90aGVyIHRoYW4gdGhlCisuRm4gY2FsbG91dF9kcmFpbgorZnVuY3Rpb24uCisuRWYKK0lmIHRo ZQorLkZhIG1wc2FmZQorYXJndW1lbnQgaXMgemVybywgdGhlIEdpYW50IG11dGV4IHdpbGwgYmUg bG9ja2VkIGJlZm9yZSB0aGUgY2FsbGJhY2sKK2Z1bmN0aW9uIGlzIGNhbGxlZC4KK0lmIHRoZQor LkZhIG1wc2FmZQorYXJndW1lbnQgaXMgemVybywgdGhlIEdpYW50IG11dGV4IGlzIGV4cGVjdGVk IHRvIGJlIGxvY2tlZCB3aGVuIGNhbGxpbmcKK2FueQorLkZuIGNhbGxvdXRfeHh4CitmdW5jdGlv bnMgd2hpY2ggc3RhcnQgYW5kIHN0b3AgYSBjYWxsb3V0IG90aGVyIHRoYW4gdGhlCisuRm4gY2Fs bG91dF9kcmFpbgorZnVuY3Rpb24uCiAuUHAKLVRoZXNlCisuRnQgdm9pZAorLkZuIGNhbGxvdXRf aW5pdF9tdHggInN0cnVjdCBjYWxsb3V0ICpjIiAic3RydWN0IG10eCAqbXR4IiAiaW50IGZsYWdz IgorVGhpcyBmdW5jdGlvbiBwcmVwYXJlcyBhCisuRnQgc3RydWN0IGNhbGxvdXQKK2JlZm9yZSBp dCBjYW4gYmUgdXNlZC4KK1RoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gdGhl IGNhbGxvdXQgaXMgcGVuZGluZyBhIHRpbWVvdXQuCitUaGUKKy5GYSBtdHgKK2FyZ3VtZW50IGlz IGEgcG9pbnRlciB0byBhIHZhbGlkIHNwaW5sb2NrIHR5cGUgb2YgbXV0ZXggb3IgYSB2YWxpZAor cmVndWxhciBub24tc2xlZXBhYmxlIG11dGV4IHdoaWNoIHRoZSBjYWxsYmFjayBzdWJzeXN0ZW0g d2lsbCBsb2NrCitiZWZvcmUgY2FsbGluZyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uCitUaGUgc3Bl Y2lmaWVkIG11dGV4IGlzIGV4cGVjdGVkIHRvIGJlIGxvY2tlZCB3aGVuIGNhbGxpbmcgYW55Cisu Rm4gY2FsbG91dF94eHgKK2Z1bmN0aW9ucyB3aGljaCBzdGFydCBhbmQgc3RvcCBhIGNhbGxvdXQg b3RoZXIgdGhhbiB0aGUKKy5GbiBjYWxsb3V0X2RyYWluCitmdW5jdGlvbi4KK1ZhbGlkCiAuRmEg ZmxhZ3MKLW1heSBiZSBzcGVjaWZpZWQgZm9yCi0uRm4gY2FsbG91dF9pbml0X210eCAsCi0uRm4g Y2FsbG91dF9pbml0X3JtICwKLW9yCi0uRm4gY2FsbG91dF9pbml0X3J3IDoKK2FyZToKIC5CbCAt dGFnIC13aWR0aCAiLkR2IENBTExPVVRfUkVUVVJOVU5MT0NLRUQiCiAuSXQgRHYgQ0FMTE9VVF9S RVRVUk5VTkxPQ0tFRAotVGhlIGNhbGxvdXQgZnVuY3Rpb24gd2lsbCByZWxlYXNlIHRoZSBhc3Nv Y2lhdGVkIGxvY2sgaXRzZWxmLAotc28gdGhlIGNhbGxvdXQgc3Vic3lzdGVtIHNob3VsZCBub3Qg YXR0ZW1wdCB0byB1bmxvY2sgaXQKLWFmdGVyIHRoZSBjYWxsb3V0IGZ1bmN0aW9uIHJldHVybnMu Ci0uSXQgRHYgQ0FMTE9VVF9TSEFSRURMT0NLCi1UaGUgbG9jayBpcyBvbmx5IGFjcXVpcmVkIGlu IHJlYWQgbW9kZSB3aGVuIHJ1bm5pbmcgdGhlIGNhbGxvdXQgaGFuZGxlci4KLVRoaXMgZmxhZyBp cyBpZ25vcmVkIGJ5Ci0uRm4gY2FsbG91dF9pbml0X210eCAuCitUaGUgY2FsbG91dCBmdW5jdGlv biBpcyBhc3N1bWVkIHRvIGhhdmUgcmVsZWFzZWQgdGhlIHNwZWNpZmllZCBtdXRleAorYmVmb3Jl IHJldHVybmluZy4KKy5JdCBEdiAwCitUaGUgY2FsbG91dCBzdWJzeXN0ZW0gd2lsbCByZWxlYXNl IHRoZSBzcGVjaWZpZWQgbXV0ZXggYWZ0ZXIgdGhlCitjYWxsb3V0IGZ1bmN0aW9uIGhhcyByZXR1 cm5lZC4KIC5FbAogLlBwCi1UaGUgZnVuY3Rpb24KLS5GbiBjYWxsb3V0X3N0b3AKLWNhbmNlbHMg YSBjYWxsb3V0Ci0uRmEgYwotaWYgaXQgaXMgY3VycmVudGx5IHBlbmRpbmcuCi1JZiB0aGUgY2Fs bG91dCBpcyBwZW5kaW5nLCB0aGVuCi0uRm4gY2FsbG91dF9zdG9wCi1yZXR1cm5zIGEgbm9uLXpl cm8gdmFsdWUuCi1JZiB0aGUgY2FsbG91dCBpcyBub3Qgc2V0LAotaGFzIGFscmVhZHkgYmVlbiBz ZXJ2aWNlZCwKLW9yIGlzIGN1cnJlbnRseSBiZWluZyBzZXJ2aWNlZCwKLXRoZW4gemVybyB3aWxs IGJlIHJldHVybmVkLgotSWYgdGhlIGNhbGxvdXQgaGFzIGFuIGFzc29jaWF0ZWQgbG9jaywKLXRo ZW4gdGhhdCBsb2NrIG11c3QgYmUgaGVsZCB3aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLgot LlBwCi1UaGUgZnVuY3Rpb24KLS5GbiBjYWxsb3V0X2RyYWluCi1pcyBpZGVudGljYWwgdG8KLS5G biBjYWxsb3V0X3N0b3AKLWV4Y2VwdCB0aGF0IGl0IHdpbGwgd2FpdCBmb3IgdGhlIGNhbGxvdXQK LS5GYSBjCi10byBjb21wbGV0ZSBpZiBpdCBpcyBhbHJlYWR5IGluIHByb2dyZXNzLgotVGhpcyBm dW5jdGlvbiBNVVNUIE5PVCBiZSBjYWxsZWQgd2hpbGUgaG9sZGluZyBhbnkKLWxvY2tzIG9uIHdo aWNoIHRoZSBjYWxsb3V0IG1pZ2h0IGJsb2NrLCBvciBkZWFkbG9jayB3aWxsIHJlc3VsdC4KLU5v dGUgdGhhdCBpZiB0aGUgY2FsbG91dCBzdWJzeXN0ZW0gaGFzIGFscmVhZHkgYmVndW4gcHJvY2Vz c2luZyB0aGlzCi1jYWxsb3V0LCB0aGVuIHRoZSBjYWxsb3V0IGZ1bmN0aW9uIG1heSBiZSBpbnZv a2VkIGJlZm9yZQotLkZuIGNhbGxvdXRfZHJhaW4KLXJldHVybnMuCi1Ib3dldmVyLCB0aGUgY2Fs bG91dCBzdWJzeXN0ZW0gZG9lcyBndWFyYW50ZWUgdGhhdCB0aGUgY2FsbG91dCB3aWxsIGJlCi1m dWxseSBzdG9wcGVkIGJlZm9yZQotLkZuIGNhbGxvdXRfZHJhaW4KLXJldHVybnMuCisuRnQgdm9p ZAorLkZuIGNhbGxvdXRfaW5pdF9ybSAic3RydWN0IGNhbGxvdXQgKmMiICJzdHJ1Y3Qgcm1sb2Nr ICpybSIgImludCBmbGFncyIKK1RoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB0bworLkZuIGNhbGxv dXRfaW5pdF9tdHggLAorYnV0IGl0IGFjY2VwdHMgYSByZWFkLW1vc3RseSB0eXBlIG9mIGxvY2su CitUaGUgcmVhZC1tb3N0bHkgbG9jayBtdXN0IG5vdCBiZSBpbml0aWFsaXplZCB3aXRoIHRoZQor LkR2IFJNX1NMRUVQQUJMRQorZmxhZy4KIC5QcAotVGhlCisuRnQgdm9pZAorLkZuIGNhbGxvdXRf aW5pdF9ydyAic3RydWN0IGNhbGxvdXQgKmMiICJzdHJ1Y3Qgcndsb2NrICpydyIgImludCBmbGFn cyIKK1RoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB0bworLkZuIGNhbGxvdXRfaW5pdF9tdHggLAor YnV0IGl0IGFjY2VwdHMgYSByZWFkL3dyaXRlIHR5cGUgb2YgbG9jay4KKy5TaCBTQ0hFRFVMSU5H IENBTExPVVRTCisuRnQgc3RydWN0IGNhbGxvdXRfaGFuZGxlCisuRm4gdGltZW91dCAidGltZW91 dF90ICpmdW5jIiAidm9pZCAqYXJnIiAiaW50IHRpY2tzIgorVGhpcyBmdW5jdGlvbiBpcyBkZXBy ZWNhdGVkLgorUGxlYXNlIHVzZQogLkZuIGNhbGxvdXRfcmVzZXQKLWFuZAotLkZuIGNhbGxvdXRf c2NoZWR1bGUKLWZ1bmN0aW9uIGZhbWlsaWVzIHNjaGVkdWxlIGEgZnV0dXJlIGZ1bmN0aW9uIGlu dm9jYXRpb24gZm9yIGNhbGxvdXQKLS5GYSBjIC4KLUlmCi0uRmEgYwotYWxyZWFkeSBoYXMgYSBw ZW5kaW5nIGNhbGxvdXQsCi1pdCBpcyBjYW5jZWxsZWQgYmVmb3JlIHRoZSBuZXcgaW52b2NhdGlv biBpcyBzY2hlZHVsZWQuCi1UaGVzZSBmdW5jdGlvbnMgcmV0dXJuIGEgbm9uLXplcm8gdmFsdWUg aWYgYSBwZW5kaW5nIGNhbGxvdXQgd2FzIGNhbmNlbGxlZAotYW5kIHplcm8gaWYgdGhlcmUgd2Fz IG5vIHBlbmRpbmcgY2FsbG91dC4KLUlmIHRoZSBjYWxsb3V0IGhhcyBhbiBhc3NvY2lhdGVkIGxv Y2ssCi10aGVuIHRoYXQgbG9jayBtdXN0IGJlIGhlbGQgd2hlbiBhbnkgb2YgdGhlc2UgZnVuY3Rp b25zIGFyZSBjYWxsZWQuCi0uUHAKLVRoZSB0aW1lIGF0IHdoaWNoIHRoZSBjYWxsb3V0IGZ1bmN0 aW9uIHdpbGwgYmUgaW52b2tlZCBpcyBkZXRlcm1pbmVkIGJ5Ci1laXRoZXIgdGhlCi0uRmEgdGlj a3MKLWFyZ3VtZW50IG9yIHRoZQotLkZhIHNidCAsCi0uRmEgcHIgLAotYW5kCi0uRmEgZmxhZ3MK LWFyZ3VtZW50cy4KLVdoZW4KLS5GYSB0aWNrcwotaXMgdXNlZCwKLXRoZSBjYWxsb3V0IGlzIHNj aGVkdWxlZCB0byBleGVjdXRlIGFmdGVyCitpbnN0ZWFkLgorVGhpcyBmdW5jdGlvbiBzY2hlZHVs ZXMgYSBjYWxsIHRvCisuRmEgZnVuYwordG8gdGFrZSBwbGFjZSBhZnRlcgogLkZhIHRpY2tzIE5z IE5vIC9oegogc2Vjb25kcy4KIE5vbi1wb3NpdGl2ZSB2YWx1ZXMgb2YKIC5GYSB0aWNrcwogYXJl IHNpbGVudGx5IGNvbnZlcnRlZCB0byB0aGUgdmFsdWUKIC5TcSAxIC4KLS5QcAogVGhlCi0uRmEg c2J0ICwKLS5GYSBwciAsCi1hbmQKLS5GYSBmbGFncwotYXJndW1lbnRzIHByb3ZpZGUgbW9yZSBj b250cm9sIG92ZXIgdGhlIHNjaGVkdWxlZCB0aW1lIGluY2x1ZGluZwotc3VwcG9ydCBmb3IgaGln aGVyIHJlc29sdXRpb24gdGltZXMsCi1zcGVjaWZ5aW5nIHRoZSBwcmVjaXNpb24gb2YgdGhlIHNj aGVkdWxlZCB0aW1lLAotYW5kIHNldHRpbmcgYW4gYWJzb2x1dGUgZGVhZGxpbmUgaW5zdGVhZCBv ZiBhIHJlbGF0aXZlIHRpbWVvdXQuCi1UaGUgY2FsbG91dCBpcyBzY2hlZHVsZWQgdG8gZXhlY3V0 ZSBpbiBhIHRpbWUgd2luZG93IHdoaWNoIGJlZ2lucyBhdAotdGhlIHRpbWUgc3BlY2lmaWVkIGlu CisuRmEgZnVuYworYXJndW1lbnQgaXMgYSB2YWxpZCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdGhh dCB0YWtlcyBhIHNpbmdsZQorLkZhIHZvaWQgKgorYXJndW1lbnQuCitVcG9uIGludm9jYXRpb24s IHRoZQorLkZhIGZ1bmMKK2Z1bmN0aW9uIHdpbGwgcmVjZWl2ZQorLkZhIGFyZworYXMgaXRzIG9u bHkgYXJndW1lbnQuCitUaGUgR2lhbnQgbG9jayBpcyBsb2NrZWQgd2hlbiB0aGUKKy5GYSBhcmcK K2Z1bmN0aW9uIGlzIGludm9rZWQgYW5kIHNob3VsZCBub3QgYmUgdW5sb2NrZWQgYnkgdGhpcyBm dW5jdGlvbi4KK1RoZSByZXR1cm5lZCB2YWx1ZSBmcm9tCisuRm4gdGltZW91dAoraXMgYQorLkZ0 IHN0cnVjdCBjYWxsb3V0X2hhbmRsZQorc3RydWN0dXJlIHdoaWNoIGNhbiBiZSB1c2VkIGluIGNv bmp1bmN0aW9uIHdpdGggdGhlCisuRm4gdW50aW1lb3V0CitmdW5jdGlvbiB0byByZXF1ZXN0IHRo YXQgYSBzY2hlZHVsZWQgdGltZW91dCBiZSBjYW5jZWxsZWQuCitBcyBoYW5kbGVzIGFyZSByZWN5 Y2xlZCBieSB0aGUgc3lzdGVtLCBpdCBpcyBwb3NzaWJsZSwgYWx0aG91Z2ggdW5saWtlbHksCit0 aGF0IGEgaGFuZGxlIGZyb20gb25lIGludm9jYXRpb24gb2YKKy5GbiB0aW1lb3V0CittYXkgbWF0 Y2ggdGhlIGhhbmRsZSBvZiBhbm90aGVyIGludm9jYXRpb24gb2YKKy5GbiB0aW1lb3V0CitpZiBi b3RoIGNhbGxzIHVzZWQgdGhlIHNhbWUgZnVuY3Rpb24gcG9pbnRlciBhbmQgYXJndW1lbnQsIGFu ZCB0aGUgZmlyc3QKK3RpbWVvdXQgaXMgZXhwaXJlZCBvciBjYW5jZWxsZWQgYmVmb3JlIHRoZSBz ZWNvbmQgY2FsbC4KK1BsZWFzZSBlbnN1cmUgdGhhdCB0aGUgZnVuY3Rpb24gYW5kIGFyZ3VtZW50 IHBvaW50ZXJzIGFyZSB1bmlxdWUgd2hlbiB1c2luZyB0aGlzIGZ1bmN0aW9uLgorLlBwCisuRnQg aW50CisuRm4gY2FsbG91dF9yZXNldCAic3RydWN0IGNhbGxvdXQgKmMiICJpbnQgdGlja3MiICJj YWxsb3V0X2Z1bmNfdCAqZnVuYyIgInZvaWQgKmFyZyIKK1RoaXMgZnVuY3Rpb24gaXMgdXNlZCB0 byBzY2hlZHVsZSBvciByZS1zY2hlZHVsZSBhIGNhbGxvdXQuCitUaGlzIGZ1bmN0aW9uIGF0IGZp cnN0IHN0b3BzIHRoZSBjYWxsb3V0IGdpdmVuIGJ5IHRoZQorLkZhIGMKK2FyZ3VtZW50LCBpZiBh bnkuCitUaGVuIGl0IHdpbGwgc3RhcnQgdGhlIGNhbGxvdXQgZ2l2ZW4gYnkgdGhlCisuRmEgYwor YXJndW1lbnQuCitUaGUgcmVsYXRpdmUgdGltZSB1bnRpbCB0aGUgdGltZW91dCBjYWxsYmFjayBo YXBwZW5zIGlzIGdpdmVuIGJ5IHRoZQorLkZhIHRpY2tzCithcmd1bWVudC4KK1RoZSBudW1iZXIg b2YgdGlja3MgaW4gYSBzZWNvbmQgaXMgZGVmaW5lZCBieQorLkR2IGh6CithbmQgY2FuIHZhcnkg ZnJvbSBzeXN0ZW0gdG8gc3lzdGVtLgorVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgbm9uLXplcm8g dmFsdWUgaWYgdGhlIGdpdmVuIGNhbGxvdXQgd2FzIHBlbmRpbmcgYW5kCit0aGUgY2FsbGJhY2sg ZnVuY3Rpb24gd2FzIHByZXZlbnRlZCBmcm9tIGJlaW5nIGNhbGxlZC4KK090aGVyd2lzZSwgYSB2 YWx1ZSBvZiB6ZXJvIGlzIHJldHVybmVkLgorSWYgYSBsb2NrIGlzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgY2FsbG91dCBnaXZlbiBieSB0aGUKKy5GYSBjCithcmd1bWVudCBhbmQgaXQgaXMgZXhjbHVz aXZseSBsb2NrZWQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCwgdGhpcworZnVuY3Rpb24g d2lsbCBhbHdheXMgZW5zdXJlIHRoYXQgcHJldmlvdXMgY2FsbGJhY2sgZnVuY3Rpb24sIGlmIGFu eSwKK2lzIG5ldmVyIHJlYWNoZWQuCitJbiBvdGhlciB3b3JkcywgdGhlIGNhbGxvdXQgd2lsbCBi ZSBhdG9taWNhbGx5IHJlc3RhcnRlZC4KK090aGVyd2lzZSwgdGhlcmUgaXMgbm8gc3VjaCBndWFy YW50ZWUuCitUaGUgY2FsbGJhY2sgZnVuY3Rpb24gaXMgZ2l2ZW4gYnkKKy5GYSBmdW5jCithbmQg aXRzIGZ1bmN0aW9uIGFyZ3VtZW50IGlzIGdpdmVuIGJ5CisuRmEgYXJnIC4KKy5QcAorLkZ0IGlu dAorLkZuIGNhbGxvdXRfcmVzZXRfY3VyY3B1ICJzdHJ1Y3QgY2FsbG91dCAqYyIgImludCB0aWNr cyIgImNhbGxvdXRfZnVuY190ICpmdW5jIiBcCisidm9pZCAqYXJnIgorVGhpcyBmdW5jdGlvbiB3 b3JrcyB0aGUgc2FtZSBsaWtlIHRoZQorLkZuIGNhbGxvdXRfcmVzZXQKK2Z1bmN0aW9uIGV4Y2Vw dCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZ2l2ZW4gYnkgdGhlCisuRmEgZnVuYworYXJndW1lbnQg d2lsbCBiZSBleGVjdXRlZCBvbiB0aGUgc2FtZSBDUFUgd2hpY2ggY2FsbGVkIHRoaXMgZnVuY3Rp b24uCisuUHAKKy5GdCBpbnQKKy5GbiBjYWxsb3V0X3Jlc2V0X29uICJzdHJ1Y3QgY2FsbG91dCAq YyIgImludCB0aWNrcyIgImNhbGxvdXRfZnVuY190ICpmdW5jIiBcCisidm9pZCAqYXJnIiAiaW50 IGNwdSIKK1RoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgbGlrZSB0aGUKKy5GbiBjYWxsb3V0 X3Jlc2V0CitmdW5jdGlvbiBleGNlcHQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGdpdmVuIGJ5IHRo ZQorLkZhIGZ1bmMKK2FyZ3VtZW50IHdpbGwgYmUgZXhlY3V0ZWQgb24gdGhlIENQVSBnaXZlbiBi eSB0aGUKKy5GYSBjcHUKK2FyZ3VtZW50LgorLlBwCisuRnQgaW50CisuRm4gY2FsbG91dF9yZXNl dF9zYnQgInN0cnVjdCBjYWxsb3V0ICpjIiAic2JpbnRpbWVfdCBzYnQiIFwKKyJzYmludGltZV90 IHByIiAiY2FsbG91dF9mdW5jX3QgKmZ1bmMiICJ2b2lkICphcmciICJpbnQgZmxhZ3MiCitUaGlz IGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGxpa2UgdGhlCisuRm4gY2FsbG91dF9yZXNldAorZnVu Y3Rpb24gZXhjZXB0IHRoZSByZWxhdGl2ZSBvciBhYnNvbHV0ZSB0aW1lIGFmdGVyIHdoaWNoIHRo ZSB0aW1lb3V0CitjYWxsYmFjayBzaG91bGQgaGFwcGVuIGlzIGdpdmVuIGJ5IHRoZQogLkZhIHNi dAotYW5kIGV4dGVuZHMgZm9yIHRoZSBhbW91bnQgb2YgdGltZSBzcGVjaWZpZWQgaW4KK2FyZ3Vt ZW50IGFuZCBleHRlbmRzIGZvciB0aGUgYW1vdW50IG9mIHRpbWUgc3BlY2lmaWVkIGluCiAuRmEg cHIgLgorVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gaGlnaCBwcmVjaXNpb24gdGltZW91dHMg YXJlIG5lZWRlZC4KIElmCiAuRmEgc2J0CiBzcGVjaWZpZXMgYSB0aW1lIGluIHRoZSBwYXN0LApA QCAtMzIyLDEyICszMDEsMTMgQEAKIGFsbG93cyB0aGUgY2FsbG91dCBzdWJzeXN0ZW0gdG8gY29h bGVzY2UgY2FsbG91dHMgc2NoZWR1bGVkIGNsb3NlIHRvIGVhY2gKIG90aGVyIGludG8gZmV3ZXIg dGltZXIgaW50ZXJydXB0cywKIHJlZHVjaW5nIHByb2Nlc3Npbmcgb3ZlcmhlYWQgYW5kIHBvd2Vy IGNvbnN1bXB0aW9uLgotVGhlc2UKK1RoZQogLkZhIGZsYWdzCi1tYXkgYmUgc3BlY2lmaWVkIHRv IGFkanVzdCB0aGUgaW50ZXJwcmV0YXRpb24gb2YKK2FyZ3VtZW50IG1heSBiZSBub24temVybyB0 byBhZGp1c3QgdGhlIGludGVycHJldGF0aW9uIG9mIHRoZQogLkZhIHNidAogYW5kCi0uRmEgcHIg OgorLkZhIHByCithcmd1bWVudHM6CiAuQmwgLXRhZyAtd2lkdGggIi5EdiBDX0RJUkVDVF9FWEVD IgogLkl0IER2IENfQUJTT0xVVEUKIEhhbmRsZSB0aGUKQEAgLTM0Nyw3ICszMjcsNyBAQAogYW5k IHNob3VsZCBiZSBhcyBzbWFsbCBhcyBwb3NzaWJsZSBiZWNhdXNlIHRoZXkgcnVuIHdpdGggYWJz b2x1dGUgcHJpb3JpdHkuCiAuSXQgRm4gQ19QUkVMCiBTcGVjaWZpZXMgcmVsYXRpdmUgZXZlbnQg dGltZSBwcmVjaXNpb24gYXMgYmluYXJ5IGxvZ2FyaXRobSBvZiB0aW1lIGludGVydmFsCi1kaXZp ZGVkIGJ5IGFjY2VwdGFibGUgdGltZSBkZXZpYXRpb246IDEgLS0gMS8yLCAyIC0tIDEvNCwgZXRj LgorZGl2aWRlZCBieSBhY2NlcHRhYmxlIHRpbWUgZGV2aWF0aW9uOiAxIC0tIDEvMiwgMiAtLSAx LzQsIGFuZCBzbyBvbi4KIE5vdGUgdGhhdCB0aGUgbGFyZ2VyIG9mCiAuRmEgcHIKIG9yIHRoaXMg dmFsdWUgaXMgdXNlZCBhcyB0aGUgbGVuZ3RoIG9mIHRoZSB0aW1lIHdpbmRvdy4KQEAgLTM2MCwx MTcgKzM0MCwyMTYgQEAKIGNhbGxzIGlmIHBvc3NpYmxlLgogLkVsCiAuUHAKLVRoZQotLkZuIGNh bGxvdXRfcmVzZXQKLWZ1bmN0aW9ucyBhY2NlcHQgYQorLkZ0IGludAorLkZuIGNhbGxvdXRfcmVz ZXRfc2J0X2N1cmNwdSAic3RydWN0IGNhbGxvdXQgKmMiICJzYmludGltZV90IHNidCIgXAorInNi aW50aW1lX3QgcHIiICJjYWxsb3V0X2Z1bmNfdCAqZnVuYyIgInZvaWQgKmFyZyIgImludCBmbGFn cyIKK1RoaXMgZnVuY3Rpb24gd29ya3MgbGlrZQorLkZuIGNhbGxvdXRfcmVzZXRfc2J0ICwKK2V4 Y2VwdCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gZ2l2ZW4gYnkgdGhlCiAuRmEgZnVuYwotYXJndW1l bnQgd2hpY2ggaWRlbnRpZmllcyB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHRp bWUgZXhwaXJlcy4KLUl0IG11c3QgYmUgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdGhhdCB0YWtl cyBhIHNpbmdsZQotLkZhIHZvaWQgKgotYXJndW1lbnQuCi1VcG9uIGludm9jYXRpb24sCithcmd1 bWVudCB3aWxsIGJlIGV4ZWN1dGVkIG9uIHRoZSBDUFUgd2hpY2ggY2FsbGVkIHRoaXMgZnVuY3Rp b24uCisuUHAKKy5GdCBpbnQKKy5GbiBjYWxsb3V0X3Jlc2V0X3NidF9vbiAic3RydWN0IGNhbGxv dXQgKmMiICJzYmludGltZV90IHNidCIgXAorInNiaW50aW1lX3QgcHIiICJjYWxsb3V0X2Z1bmNf dCAqZnVuYyIgInZvaWQgKmFyZyIgImludCBjcHUiICJpbnQgZmxhZ3MiCitUaGlzIGZ1bmN0aW9u IHdvcmtzIGxpa2UKKy5GbiBjYWxsb3V0X3Jlc2V0X3NidCAsCitleGNlcHQgdGhlIGNhbGxiYWNr IGZ1bmN0aW9uIGdpdmVuIGJ5CiAuRmEgZnVuYwotd2lsbCByZWNlaXZlCi0uRmEgYXJnCi1hcyBp dHMgb25seSBhcmd1bWVudC4KLVRoZQotLkZuIGNhbGxvdXRfc2NoZWR1bGUKLWZ1bmN0aW9ucyBy ZXVzZSB0aGUKK3dpbGwgYmUgZXhlY3V0ZWQgb24gdGhlIENQVSBnaXZlbiBieQorLkZhIGNwdSAu CisuUHAKKy5GdCBpbnQKKy5GbiBjYWxsb3V0X3NjaGVkdWxlICJzdHJ1Y3QgY2FsbG91dCAqYyIg ImludCB0aWNrcyIKK1RoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgbGlrZSB0aGUKKy5GbiBj YWxsb3V0X3Jlc2V0CitmdW5jdGlvbiBleGNlcHQgaXQgcmUtdXNlcyB0aGUgY2FsbGJhY2sgZnVu Y3Rpb24gYW5kIHRoZSBjYWxsYmFjayBhcmd1bWVudAorYWxyZWFkeSBzdG9yZWQgaW4gdGhlCisu UHEgc3RydWN0IGNhbGxvdXQKK3N0cnVjdHVyZS4KKy5QcAorLkZ0IGludAorLkZuIGNhbGxvdXRf c2NoZWR1bGVfY3VyY3B1ICJzdHJ1Y3QgY2FsbG91dCAqYyIgImludCB0aWNrcyIKK1RoaXMgZnVu Y3Rpb24gd29ya3MgdGhlIHNhbWUgbGlrZSB0aGUKKy5GbiBjYWxsb3V0X3Jlc2V0X2N1cmNwdQor ZnVuY3Rpb24gZXhjZXB0IGl0IHJlLXVzZXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCB0aGUg Y2FsbGJhY2sgYXJndW1lbnQKK2FscmVhZHkgc3RvcmVkIGluIHRoZQorLlBxIHN0cnVjdCBjYWxs b3V0CitzdHJ1Y3R1cmUuCisuUHAKKy5GdCBpbnQKKy5GbiBjYWxsb3V0X3NjaGVkdWxlX29uICJz dHJ1Y3QgY2FsbG91dCAqYyIgImludCB0aWNrcyIgImludCBjcHUiCitUaGlzIGZ1bmN0aW9uIHdv cmtzIHRoZSBzYW1lIGxpa2UgdGhlCisuRm4gY2FsbG91dF9yZXNldF9vbgorZnVuY3Rpb24gZXhj ZXB0IGl0IHJlLXVzZXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGFuZCB0aGUgY2FsbGJhY2sgYXJn dW1lbnQKK2FscmVhZHkgc3RvcmVkIGluIHRoZQorLlBxIHN0cnVjdCBjYWxsb3V0CitzdHJ1Y3R1 cmUuCisuUHAKKy5GdCBpbnQKKy5GbiBjYWxsb3V0X3NjaGVkdWxlX3NidCAic3RydWN0IGNhbGxv dXQgKmMiICJzYmludGltZV90IHNidCIgXAorInNiaW50aW1lX3QgcHIiICJpbnQgZmxhZ3MiCitU aGlzIGZ1bmN0aW9uIHdvcmtzIHRoZSBzYW1lIGxpa2UgdGhlCisuRm4gY2FsbG91dF9yZXNldF9z YnQKK2Z1bmN0aW9uIGV4Y2VwdCBpdCByZS11c2VzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBhbmQg dGhlIGNhbGxiYWNrIGFyZ3VtZW50CithbHJlYWR5IHN0b3JlZCBpbiB0aGUKKy5QcSBzdHJ1Y3Qg Y2FsbG91dAorc3RydWN0dXJlLgorLlBwCisuRnQgaW50CisuRm4gY2FsbG91dF9zY2hlZHVsZV9z YnRfY3VyY3B1ICJzdHJ1Y3QgY2FsbG91dCAqYyIgInNiaW50aW1lX3Qgc2J0IiBcCisic2JpbnRp bWVfdCBwciIgImludCBmbGFncyIKK1RoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgbGlrZSB0 aGUKKy5GbiBjYWxsb3V0X3Jlc2V0X3NidF9jdXJjcHUKK2Z1bmN0aW9uIGV4Y2VwdCBpdCByZS11 c2VzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBhbmQgdGhlIGNhbGxiYWNrIGFyZ3VtZW50CithbHJl YWR5IHN0b3JlZCBpbiB0aGUKKy5QcSBzdHJ1Y3QgY2FsbG91dAorc3RydWN0dXJlLgorLlBwCisu RnQgaW50CisuRm4gY2FsbG91dF9zY2hlZHVsZV9zYnRfb24gInN0cnVjdCBjYWxsb3V0ICpjIiAi c2JpbnRpbWVfdCBzYnQiIFwKKyJzYmludGltZV90IHByIiAiaW50IGNwdSIgImludCBmbGFncyIK K1RoaXMgZnVuY3Rpb24gd29ya3MgdGhlIHNhbWUgbGlrZSB0aGUKKy5GbiBjYWxsb3V0X3Jlc2V0 X3NidF9vbgorZnVuY3Rpb24gZXhjZXB0IGl0IHJlLXVzZXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9u IGFuZCB0aGUgY2FsbGJhY2sgYXJndW1lbnQKK2FscmVhZHkgc3RvcmVkIGluIHRoZQorLlBxIHN0 cnVjdCBjYWxsb3V0CitzdHJ1Y3R1cmUuCisuU2ggQ0hFQ0tJTkcgVEhFIFNUQVRFIE9GIENBTExP VVRTCisuRnQgaW50CisuRm4gY2FsbG91dF9wZW5kaW5nICJzdHJ1Y3QgY2FsbG91dCAqYyIKK1Ro aXMgZnVuY3Rpb24gcmV0dXJucyBub24temVybyBpZiB0aGUgY2FsbG91dCBwb2ludGVkIHRvIGJ5 IHRoZQorLkZhIGMKK2FyZ3VtZW50IGlzIHBlbmRpbmcgZm9yIGNhbGxiYWNrLgorRWxzZSB0aGlz IGZ1bmN0aW9uIHJldHVybnMgemVyby4KK1RoaXMgZnVuY3Rpb24gcmV0dXJucyB6ZXJvIHdoZW4g aW5zaWRlIHRoZSBjYWxsb3V0IGZ1bmN0aW9uIGlmIHRoZQorY2FsbG91dCBpcyBub3QgcmUtc2No ZWR1bGVkLgorLlBwCisuRnQgaW50CisuRm4gY2FsbG91dF9hY3RpdmUgInN0cnVjdCBjYWxsb3V0 ICpjIgorVGhpcyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCByZXR1cm5zIG5vbi16ZXJvIGlm IHRoZSBjYWxsb3V0Citwb2ludGVkIHRvIGJ5IHRoZQorLkZhIGMKK2FyZ3VtZW50IHdhcyBzY2hl ZHVsZWQgaW4gdGhlIHBhc3QuCitFbHNlIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB6ZXJvLgorVGhp cyBmdW5jdGlvbiBhbHNvIHJldHVybnMgemVybyBhZnRlciB0aGUKKy5GbiBjYWxsb3V0X2RlYWN0 aXZhdGUKK29yIHRoZQorLkZuIGNhbGxvdXRfc3RvcAorb3IgdGhlCisuRm4gY2FsbG91dF9kcmFp bgorb3IgdGhlCisuRm4gY2FsbG91dF9kcmFpbl9hc3luYworZnVuY3Rpb24gaXMgY2FsbGVkIG9u IHRoZSBzYW1lIGNhbGxvdXQgYXMgZ2l2ZW4gYnkgdGhlCisuRmEgYworYXJndW1lbnQuCisuUHAK Ky5GdCB2b2lkCisuRm4gY2FsbG91dF9kZWFjdGl2YXRlICJzdHJ1Y3QgY2FsbG91dCAqYyIKK1Ro aXMgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgZW5zdXJlcyB0aGF0IHN1YnNlcXVlbnQgY2Fs bHMgdG8gdGhlCisuRm4gY2FsbG91dF9hY3RpdmF0ZQorZnVuY3Rpb24gcmV0dXJucyB6ZXJvIHVu dGlsIHRoZSBjYWxsb3V0IGlzIHNjaGVkdWxlZCBhZ2Fpbi4KKy5TaCBTVE9QUElORyBDQUxMT1VU UworLkZ0IHZvaWQKKy5GbiB1bnRpbWVvdXQgInRpbWVvdXRfdCAqZnVuYyIgInZvaWQgKmFyZyIg InN0cnVjdCBjYWxsb3V0X2hhbmRsZSBoYW5kbGUiCitUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0 ZWQgYW5kIGNhbmNlbHMgdGhlIHRpbWVvdXQgYXNzb2NpYXRlZCB3aXRoIHRoZQorLkZhIGhhbmRs ZQorYXJndW1lbnQgdXNpbmcgdGhlIGZ1bmN0aW9uIHBvaW50ZWQgdG8gYnkgdGhlCiAuRmEgZnVu YwotYW5kCithcmd1bWVudCBhbmQgaGF2aW5nIHRoZQogLkZhIGFyZwotYXJndW1lbnRzIGZyb20g dGhlIHByZXZpb3VzIGNhbGxvdXQuCi1Ob3RlIHRoYXQgb25lIG9mIHRoZQotLkZuIGNhbGxvdXRf cmVzZXQKLWZ1bmN0aW9ucyBtdXN0IGFsd2F5cyBiZSBjYWxsZWQgdG8gaW5pdGlhbGl6ZQorYXJn dW1lbnRzIHRvIHZhbGlkYXRlIHRoZSBoYW5kbGUuCitJZiB0aGUgaGFuZGxlIGRvZXMgbm90IGNv cnJlc3BvbmQgdG8gYSB0aW1lb3V0IHdpdGgKK3RoZSBmdW5jdGlvbgogLkZhIGZ1bmMKLWFuZAor dGFraW5nIHRoZSBhcmd1bWVudAogLkZhIGFyZwotYmVmb3JlIG9uZSBvZiB0aGUKLS5GbiBjYWxs b3V0X3NjaGVkdWxlCi1mdW5jdGlvbnMgY2FuIGJlIHVzZWQuCitubyBhY3Rpb24gaXMgdGFrZW4u IFRoZQorLkZhIGhhbmRsZQorbXVzdCBiZSBpbml0aWFsaXplZCBieSBhIHByZXZpb3VzIGNhbGwg dG8KKy5GbiB0aW1lb3V0ICwKKy5GbiBjYWxsb3V0X2hhbmRsZV9pbml0CitvciBhc3NpZ25lZCB0 aGUgdmFsdWUgb2YKKy5GbiBDQUxMT1VUX0hBTkRMRV9JTklUSUFMSVpFUiAiJmhhbmRsZSIKK2Jl Zm9yZSBiZWluZyBwYXNzZWQgdG8KKy5GbiB1bnRpbWVvdXQgLgorVGhlIGJlaGF2aW9yIG9mIGNh bGxpbmcKKy5GbiB1bnRpbWVvdXQKK3dpdGggYW4gdW5pbml0aWFsaXplZCBoYW5kbGUKK2lzIHVu ZGVmaW5lZC4KIC5QcAotVGhlIGNhbGxvdXQgc3Vic3lzdGVtIHByb3ZpZGVzIGEgc29mdGNsb2Nr IHRocmVhZCBmb3IgZWFjaCBDUFUgaW4gdGhlIHN5c3RlbS4KLUNhbGxvdXRzIGFyZSBhc3NpZ25l ZCB0byBhIHNpbmdsZSBDUFUgYW5kIGFyZSBleGVjdXRlZCBieSB0aGUgc29mdGNsb2NrIHRocmVh ZAotZm9yIHRoYXQgQ1BVLgotSW5pdGlhbGx5LAotY2FsbG91dHMgYXJlIGFzc2lnbmVkIHRvIENQ VSAwLgotVGhlCi0uRm4gY2FsbG91dF9yZXNldF9vbiAsCi0uRm4gY2FsbG91dF9yZXNldF9zYnRf b24gLAotLkZuIGNhbGxvdXRfc2NoZWR1bGVfb24KLWFuZAotLkZuIGNhbGxvdXRfc2NoZWR1bGVf c2J0X29uCi1mdW5jdGlvbnMgYXNzaWduIHRoZSBjYWxsb3V0IHRvIENQVQotLkZhIGNwdSAuCi1U aGUKLS5GbiBjYWxsb3V0X3Jlc2V0X2N1cmNwdSAsCi0uRm4gY2FsbG91dF9yZXNldF9zYnRfY3Vy cHUgLAotLkZuIGNhbGxvdXRfc2NoZWR1bGVfY3VyY3B1Ci1hbmQKLS5GbiBjYWxsb3V0X3NjaGVk dWxlX3NidF9jdXJjcHUKLWZ1bmN0aW9ucyBhc3NpZ24gdGhlIGNhbGxvdXQgdG8gdGhlIGN1cnJl bnQgQ1BVLgotVGhlCi0uRm4gY2FsbG91dF9yZXNldCAsCi0uRm4gY2FsbG91dF9yZXNldF9zYnQg LAotLkZuIGNhbGxvdXRfc2NoZWR1bGUKLWFuZAotLkZuIGNhbGxvdXRfc2NoZWR1bGVfc2J0Ci1m dW5jdGlvbnMgc2NoZWR1bGUgdGhlIGNhbGxvdXQgdG8gZXhlY3V0ZSBpbiB0aGUgc29mdGNsb2Nr IHRocmVhZCBvZiB0aGUgQ1BVCi10byB3aGljaCBpdCBpcyBjdXJyZW50bHkgYXNzaWduZWQuCisu RnQgaW50CisuRm4gY2FsbG91dF9zdG9wICJzdHJ1Y3QgY2FsbG91dCAqYyIKK1RoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBzdG9wIGEgdGltZW91dCBmdW5jdGlvbiBpbnZvY2F0aW9uIGFzc29jaWF0 ZWQgd2l0aCB0aGUgY2FsbG91dCBwb2ludGVkIHRvIGJ5IHRoZQorLkZhIGMKK2FyZ3VtZW50LCBp biBhIG5vbi1ibG9ja2luZyBmYXNoaW9uLgorVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG11 bHRpcGxlIHRpbWVzIGluIGEgcm93IHdpdGggbm8gc2lkZSBlZmZlY3RzLCBldmVuIGlmIHRoZSBj YWxsb3V0IGlzIGFscmVhZHkgc3RvcHBlZC4gVGhpcyBmdW5jdGlvbiBob3dldmVyIHNob3VsZCBu b3QgYmUgY2FsbGVkIGJlZm9yZSB0aGUgY2FsbG91dCBoYXMgYmVlbiBpbml0aWFsaXplZC4KK1Ro aXMgZnVuY3Rpb24gcmV0dXJucyBhIG5vbi16ZXJvIHZhbHVlIGlmIHRoZSBnaXZlbiBjYWxsb3V0 IHdhcyBwZW5kaW5nIGFuZAordGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdhcyBwcmV2ZW50ZWQgZnJv bSBiZWluZyBjYWxsZWQuCitFbHNlIGEgdmFsdWUgb2YgemVybyBpcyByZXR1cm5lZC4KK0lmIGEg bG9jayBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNhbGxvdXQgZ2l2ZW4gYnkgdGhlCisuRmEgYwor YXJndW1lbnQgYW5kIGl0IGlzIGV4Y2x1c2l2bHkgbG9ja2VkIHdoZW4gdGhpcyBmdW5jdGlvbiBp cyBjYWxsZWQsIHRoZQorLkZuIGNhbGxvdXRfc3RvcAorZnVuY3Rpb24gd2lsbCBhbHdheXMgZW5z dXJlIHRoYXQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIG5ldmVyIHJlYWNoZWQuCitJbiBvdGhl ciB3b3JkcyB0aGUgY2FsbG91dCB3aWxsIGJlIGF0b21pY2FsbHkgc3RvcHBlZC4KK0Vsc2UgdGhl cmUgaXMgbm8gc3VjaCBndWFyYW50ZWUuCisuU2ggRFJBSU5JTkcgQ0FMTE9VVFMKKy5GdCBpbnQK Ky5GbiBjYWxsb3V0X2RyYWluICJzdHJ1Y3QgY2FsbG91dCAqYyIKK1RoaXMgZnVuY3Rpb24gd29y a3MgdGhlIHNhbWUgbGlrZSB0aGUKKy5GbiBjYWxsb3V0X3N0b3AKK2Z1bmN0aW9uIGV4Y2VwdCBp dCBlbnN1cmVzIHRoYXQgYWxsIGNhbGxiYWNrIGZ1bmN0aW9ucyBoYXZlIHJldHVybmVkIGFuZCB0 aGVyZSBhcmUgbm8gbW9yZSByZWZlcmVuY2VzIHRvIHRoZSBjYWxsb3V0IHBvaW50ZWQgdG8gYnkg dGhlCisuRmEgYworYXJndW1lbnQgaW5zaWRlIHRoZSBjYWxsb3V0IHN1YnN5c3RlbSBiZWZvcmUg aXQgcmV0dXJucy4KK0Fsc28gdGhpcyBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgdGhlIGxvY2ssIGlm IGFueSwgYXNzb2NpYXRlZCB3aXRoIHRoZQorY2FsbG91dCBpcyBubyBsb25nZXIgYmVpbmcgdXNl ZC4KK1doZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLCBpdCBpcyBzYWZlIHRvIGZyZWUgdGhlIGNh bGxvdXQgc3RydWN0dXJlIHBvaW50ZWQgdG8gYnkgdGhlCisuRmEgYworYXJndW1lbnQuCiAuUHAK Ky5GdCBpbnQKKy5GbiBjYWxsb3V0X2RyYWluX2FzeW5jICJzdHJ1Y3QgY2FsbG91dCAqYyIgImNh bGxvdXRfZnVuY190ICpmbiIgInZvaWQgKmFyZyIKK1RoaXMgZnVuY3Rpb24gaXMgbm9uLWJsb2Nr aW5nIGFuZCB3b3JrcyB0aGUgc2FtZSBsaWtlIHRoZQorLkZuIGNhbGxvdXRfc3RvcAorZnVuY3Rp b24gZXhjZXB0IGlmIGl0IHJldHVybnMgbm9uLXplcm8gaXQgbWVhbnMgdGhlIGNhbGxiYWNrIGZ1 bmN0aW9uIHBvaW50ZWQgdG8gYnkgdGhlCisuRmEgZm4KK2FyZ3VtZW50IHdpbGwgYmUgY2FsbGVk IGJhY2sgd2l0aCB0aGUKKy5GYSBhcmcKK2FyZ3VtZW50IHdoZW4gYWxsIHJlZmVyZW5jZXMgdG8g dGhlIGNhbGxvdXQgcG9pbnRlZCB0byBieSB0aGUKKy5GYSBjCithcmd1bWVudCBhcmUgZ29uZS4K K0lmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBub24temVybyBpdCBzaG91bGQgbm90IGJlIGNhbGxl ZCBhZ2FpbiB1bnRpbCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gaGFzIGJlZW4gY2FsbGVkLgorSWYg dGhlCisuRm4gY2FsbG91dF9kcmFpbgorb3IKKy5GbiBjYWxsb3V0X2RyYWluX2FzeW5jCitmdW5j dGlvbnMgYXJlIGNhbGxlZCB3aGlsZSBhbiBhc3luY2hyb25vdXMgZHJhaW4gaXMgcGVuZGluZywK K3ByZXZpb3VzbHkgcGVuZGluZyBhc3luY2hyb25vdXMgZHJhaW5zIG1pZ2h0IGdldCBjYW5jZWxs ZWQuCitJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgemVybywgaXQgaXMgc2FmZSB0byBmcmVlIHRo ZSBjYWxsb3V0IHN0cnVjdHVyZSBwb2ludGVkIHRvIGJ5IHRoZQorLkZhIGMKK2FyZ3VtZW50IHJp Z2h0IGF3YXkuCisuU2ggQ0FMTE9VVCBGVU5DVElPTiBSRVNUUklDVElPTlMKK0NhbGxvdXQgZnVu Y3Rpb25zIG11c3Qgbm90IHNsZWVwLgorVGhleSBtYXkgbm90IGFjcXVpcmUgc2xlZXBhYmxlIGxv Y2tzLCB3YWl0IG9uIGNvbmRpdGlvbiB2YXJpYWJsZXMsCitwZXJmb3JtIGJsb2NraW5nIGFsbG9j YXRpb24gcmVxdWVzdHMsIG9yIGludm9rZSBhbnkgb3RoZXIgYWN0aW9uIHRoYXQKK21pZ2h0IHNs ZWVwLgorLlNoIENBTExPVVQgU1VCU1lTVEVNIElOVEVSTkFMUworVGhlIGNhbGxvdXQgc3Vic3lz dGVtIGhhcyBpdHMgb3duIHNldCBvZiBzcGlubG9ja3MgdG8gcHJvdGVjdCBpdHMgaW50ZXJuYWwg c3RhdGUuCitUaGUgY2FsbG91dCBzdWJzeXN0ZW0gcHJvdmlkZXMgYSBzb2Z0Y2xvY2sgdGhyZWFk IGZvciBlYWNoIENQVSBpbiB0aGUKK3N5c3RlbS4KK0NhbGxvdXRzIGFyZSBhc3NpZ25lZCB0byBh IHNpbmdsZSBDUFUgYW5kIGFyZSBleGVjdXRlZCBieSB0aGUKK3NvZnRjbG9jayB0aHJlYWQgZm9y IHRoYXQgQ1BVLgorSW5pdGlhbGx5LCBjYWxsb3V0cyBhcmUgYXNzaWduZWQgdG8gQ1BVIDAuCiBT b2Z0Y2xvY2sgdGhyZWFkcyBhcmUgbm90IHBpbm5lZCB0byB0aGVpciByZXNwZWN0aXZlIENQVXMg YnkgZGVmYXVsdC4KIFRoZSBzb2Z0Y2xvY2sgdGhyZWFkIGZvciBDUFUgMCBjYW4gYmUgcGlubmVk IHRvIENQVSAwIGJ5IHNldHRpbmcgdGhlCiAuVmEga2Vybi5waW5fZGVmYXVsdF9zd2kKIGxvYWRl ciB0dW5hYmxlIHRvIGEgbm9uLXplcm8gdmFsdWUuCiBTb2Z0Y2xvY2sgdGhyZWFkcyBmb3IgQ1BV cyBvdGhlciB0aGFuIHplcm8gY2FuIGJlIHBpbm5lZCB0byB0aGVpcgogcmVzcGVjdGl2ZSBDUFVz IGJ5IHNldHRpbmcgdGhlCiAuVmEga2Vybi5waW5fcGNwdV9zd2kKIGxvYWRlciB0dW5hYmxlIHRv IGEgbm9uLXplcm8gdmFsdWUuCi0uUHAKLVRoZSBtYWNyb3MKLS5GbiBjYWxsb3V0X3BlbmRpbmcg LAotLkZuIGNhbGxvdXRfYWN0aXZlCi1hbmQKLS5GbiBjYWxsb3V0X2RlYWN0aXZhdGUKLXByb3Zp ZGUgYWNjZXNzIHRvIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjYWxsb3V0LgotVGhlCi0uRm4g Y2FsbG91dF9wZW5kaW5nCi1tYWNybyBjaGVja3Mgd2hldGhlciBhIGNhbGxvdXQgaXMKLS5FbSBw ZW5kaW5nIDsKLWEgY2FsbG91dCBpcyBjb25zaWRlcmVkCi0uRW0gcGVuZGluZwotd2hlbiBhIHRp bWVvdXQgaGFzIGJlZW4gc2V0IGJ1dCB0aGUgdGltZSBoYXMgbm90IHlldCBhcnJpdmVkLgotTm90 ZSB0aGF0IG9uY2UgdGhlIHRpbWVvdXQgdGltZSBhcnJpdmVzIGFuZCB0aGUgY2FsbG91dCBzdWJz eXN0ZW0KLXN0YXJ0cyB0byBwcm9jZXNzIHRoaXMgY2FsbG91dCwKLS5GbiBjYWxsb3V0X3BlbmRp bmcKLXdpbGwgcmV0dXJuCi0uRHYgRkFMU0UKLWV2ZW4gdGhvdWdoIHRoZSBjYWxsb3V0IGZ1bmN0 aW9uIG1heSBub3QgaGF2ZSBmaW5pc2hlZAotLlBxIG9yIGV2ZW4gYmVndW4KLWV4ZWN1dGluZy4K LVRoZQotLkZuIGNhbGxvdXRfYWN0aXZlCi1tYWNybyBjaGVja3Mgd2hldGhlciBhIGNhbGxvdXQg aXMgbWFya2VkIGFzCi0uRW0gYWN0aXZlICwKLWFuZCB0aGUKLS5GbiBjYWxsb3V0X2RlYWN0aXZh dGUKLW1hY3JvIGNsZWFycyB0aGUgY2FsbG91dCdzCi0uRW0gYWN0aXZlCi1mbGFnLgotVGhlIGNh bGxvdXQgc3Vic3lzdGVtIG1hcmtzIGEgY2FsbG91dCBhcwotLkVtIGFjdGl2ZQotd2hlbiBhIHRp bWVvdXQgaXMgc2V0IGFuZCBpdCBjbGVhcnMgdGhlCi0uRW0gYWN0aXZlCi1mbGFnIGluCi0uRm4g Y2FsbG91dF9zdG9wCi1hbmQKLS5GbiBjYWxsb3V0X2RyYWluICwKLWJ1dCBpdAotLkVtIGRvZXMg bm90Ci1jbGVhciBpdCB3aGVuIGEgY2FsbG91dCBleHBpcmVzIG5vcm1hbGx5IHZpYSB0aGUgZXhl Y3V0aW9uIG9mIHRoZQotY2FsbG91dCBmdW5jdGlvbi4KLS5TcyAiQXZvaWRpbmcgUmFjZSBDb25k aXRpb25zIgorLlNoICJBVk9JRElORyBSQUNFIENPTkRJVElPTlMiCiBUaGUgY2FsbG91dCBzdWJz eXN0ZW0gaW52b2tlcyBjYWxsb3V0IGZ1bmN0aW9ucyBmcm9tIGl0cyBvd24gdGhyZWFkCiBjb250 ZXh0LgogV2l0aG91dCBzb21lIGtpbmQgb2Ygc3luY2hyb25pemF0aW9uLApAQCAtNTMxLDkgKzYx MCw4IEBACiAuUGMKIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgY2FsbG91dCB3YXMgcmVt b3ZlZC4KIElmIGl0IGlzIGtub3duIHRoYXQgdGhlIGNhbGxvdXQgd2FzIHNldCBhbmQgdGhlIGNh bGxvdXQgZnVuY3Rpb24gaGFzCi1ub3QgeWV0IGV4ZWN1dGVkLCB0aGVuIGEgcmV0dXJuIHZhbHVl IG9mCi0uRHYgRkFMU0UKLWluZGljYXRlcyB0aGF0IHRoZSBjYWxsb3V0IGZ1bmN0aW9uIGlzIGFi b3V0IHRvIGJlIGNhbGxlZC4KK25vdCB5ZXQgZXhlY3V0ZWQsIHRoZW4gYSByZXR1cm4gdmFsdWUg b2YgemVybyBpbmRpY2F0ZXMgdGhhdCB0aGUKK2NhbGxvdXQgZnVuY3Rpb24gaXMgYWJvdXQgdG8g YmUgY2FsbGVkLgogRm9yIGV4YW1wbGU6CiAuQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKIGlm IChzYy0+c2NfZmxhZ3MgJiBTQ0ZMR19DQUxMT1VUX1JVTk5JTkcpIHsKQEAgLTU4OSwxNiArNjY3 LDE0IEBACiAuRW0gcGVuZGluZwogZmxhZyBhbmQgcmV0dXJuIHdpdGhvdXQgYWN0aW9uIGlmCiAu Rm4gY2FsbG91dF9wZW5kaW5nCi1yZXR1cm5zCi0uRHYgVFJVRSAuCityZXR1cm5zIG5vbi16ZXJv LgogVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgY2FsbG91dCB3YXMgcmVzY2hlZHVsZWQgdXNpbmcK IC5GbiBjYWxsb3V0X3Jlc2V0CiBqdXN0IGJlZm9yZSB0aGUgY2FsbG91dCBmdW5jdGlvbiB3YXMg aW52b2tlZC4KIElmCiAuRm4gY2FsbG91dF9hY3RpdmUKLXJldHVybnMKLS5EdiBGQUxTRQotdGhl biB0aGUgY2FsbG91dCBmdW5jdGlvbiBzaG91bGQgYWxzbyByZXR1cm4gd2l0aG91dCBhY3Rpb24u CityZXR1cm5zIHplcm8gdGhlbiB0aGUgY2FsbG91dCBmdW5jdGlvbiBzaG91bGQgYWxzbyByZXR1 cm4gd2l0aG91dAorYWN0aW9uLgogVGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgY2FsbG91dCBoYXMg YmVlbiBzdG9wcGVkLgogRmluYWxseSwgdGhlIGNhbGxvdXQgZnVuY3Rpb24gc2hvdWxkIGNhbGwK IC5GbiBjYWxsb3V0X2RlYWN0aXZhdGUKQEAgLTY2OCwxMjkgKzc0NCwxMyBAQAogb3IgcmVsZWFz aW5nIHRoZSBzdG9yYWdlIGZvciB0aGUgY2FsbG91dCBzdHJ1Y3R1cmUuCiAuU2ggTEVHQUNZIEFQ SQogLkJmIFN5Ci1UaGUgZnVuY3Rpb25zIGJlbG93IGFyZSBhIGxlZ2FjeSBBUEkgdGhhdCB3aWxs IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KLU5ldyBjb2RlIHNob3VsZCBub3QgdXNl IHRoZXNlIHJvdXRpbmVzLgotLkVmCi0uUHAKLVRoZSBmdW5jdGlvbgotLkZuIHRpbWVvdXQKLXNj aGVkdWxlcyBhIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIGdpdmVuIGJ5IHRoZSBhcmd1bWVudAotLkZh IGZ1bmMKLXRvIHRha2UgcGxhY2UgYWZ0ZXIKLS5GYSB0aWNrcyBOcyBObyAvaHoKLXNlY29uZHMu Ci1Ob24tcG9zaXRpdmUgdmFsdWVzIG9mCi0uRmEgdGlja3MKLWFyZSBzaWxlbnRseSBjb252ZXJ0 ZWQgdG8gdGhlIHZhbHVlCi0uU3EgMSAuCi0uRmEgZnVuYwotc2hvdWxkIGJlIGEgcG9pbnRlciB0 byBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYQotLkZhIHZvaWQgKgotYXJndW1lbnQuCi1VcG9uIGlu dm9jYXRpb24sCi0uRmEgZnVuYwotd2lsbCByZWNlaXZlCi0uRmEgYXJnCi1hcyBpdHMgb25seSBh cmd1bWVudC4KLVRoZSByZXR1cm4gdmFsdWUgZnJvbQorVGhlCiAuRm4gdGltZW91dAotaXMgYQot LkZ0IHN0cnVjdCBjYWxsb3V0X2hhbmRsZQotd2hpY2ggY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rp b24gd2l0aCB0aGUKLS5GbiB1bnRpbWVvdXQKLWZ1bmN0aW9uIHRvIHJlcXVlc3QgdGhhdCBhIHNj aGVkdWxlZCB0aW1lb3V0IGJlIGNhbmNlbGVkLgotLlBwCi1UaGUgZnVuY3Rpb24KLS5GbiBjYWxs b3V0X2hhbmRsZV9pbml0Ci1jYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIGEgaGFuZGxlIHRvIGEg c3RhdGUgd2hpY2ggd2lsbCBjYXVzZQotYW55IGNhbGxzIHRvCi0uRm4gdW50aW1lb3V0Ci13aXRo IHRoYXQgaGFuZGxlIHRvIHJldHVybiB3aXRoIG5vIHNpZGUKLWVmZmVjdHMuCi0uUHAKLUFzc2ln bmluZyBhIGNhbGxvdXQgaGFuZGxlIHRoZSB2YWx1ZSBvZgotLkZuIENBTExPVVRfSEFORExFX0lO SVRJQUxJWkVSCi1wZXJmb3JtcyB0aGUgc2FtZSBmdW5jdGlvbiBhcwotLkZuIGNhbGxvdXRfaGFu ZGxlX2luaXQKLWFuZCBpcyBwcm92aWRlZCBmb3IgdXNlIG9uIHN0YXRpY2FsbHkgZGVjbGFyZWQg b3IgZ2xvYmFsIGNhbGxvdXQgaGFuZGxlcy4KLS5QcAotVGhlIGZ1bmN0aW9uCi0uRm4gdW50aW1l b3V0Ci1jYW5jZWxzIHRoZSB0aW1lb3V0IGFzc29jaWF0ZWQgd2l0aAotLkZhIGhhbmRsZQotdXNp bmcgdGhlCi0uRmEgZnVuYwogYW5kCi0uRmEgYXJnCi1hcmd1bWVudHMgdG8gdmFsaWRhdGUgdGhl IGhhbmRsZS4KLUlmIHRoZSBoYW5kbGUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHRpbWVvdXQg d2l0aAotdGhlIGZ1bmN0aW9uCi0uRmEgZnVuYwotdGFraW5nIHRoZSBhcmd1bWVudAotLkZhIGFy Zwotbm8gYWN0aW9uIGlzIHRha2VuLgotLkZhIGhhbmRsZQotbXVzdCBiZSBpbml0aWFsaXplZCBi eSBhIHByZXZpb3VzIGNhbGwgdG8KLS5GbiB0aW1lb3V0ICwKLS5GbiBjYWxsb3V0X2hhbmRsZV9p bml0ICwKLW9yIGFzc2lnbmVkIHRoZSB2YWx1ZSBvZgotLkZuIENBTExPVVRfSEFORExFX0lOSVRJ QUxJWkVSICImaGFuZGxlIgotYmVmb3JlIGJlaW5nIHBhc3NlZCB0bwotLkZuIHVudGltZW91dCAu Ci1UaGUgYmVoYXZpb3Igb2YgY2FsbGluZwogLkZuIHVudGltZW91dAotd2l0aCBhbiB1bmluaXRp YWxpemVkIGhhbmRsZQotaXMgdW5kZWZpbmVkLgotLlBwCi1BcyBoYW5kbGVzIGFyZSByZWN5Y2xl ZCBieSB0aGUgc3lzdGVtLCBpdCBpcyBwb3NzaWJsZSAoYWx0aG91Z2ggdW5saWtlbHkpCi10aGF0 IGEgaGFuZGxlIGZyb20gb25lIGludm9jYXRpb24gb2YKLS5GbiB0aW1lb3V0Ci1tYXkgbWF0Y2gg dGhlIGhhbmRsZSBvZiBhbm90aGVyIGludm9jYXRpb24gb2YKLS5GbiB0aW1lb3V0Ci1pZiBib3Ro IGNhbGxzIHVzZWQgdGhlIHNhbWUgZnVuY3Rpb24gcG9pbnRlciBhbmQgYXJndW1lbnQsIGFuZCB0 aGUgZmlyc3QKLXRpbWVvdXQgaXMgZXhwaXJlZCBvciBjYW5jZWxlZCBiZWZvcmUgdGhlIHNlY29u ZCBjYWxsLgotVGhlIHRpbWVvdXQgZmFjaWxpdHkgb2ZmZXJzIE8oMSkgcnVubmluZyB0aW1lIGZv cgotLkZuIHRpbWVvdXQKLWFuZAotLkZuIHVudGltZW91dCAuCi1UaW1lb3V0cyBhcmUgZXhlY3V0 ZWQgZnJvbQotLkZuIHNvZnRjbG9jawotd2l0aCB0aGUKLS5WYSBHaWFudAotbG9jayBoZWxkLgot VGh1cyB0aGV5IGFyZSBwcm90ZWN0ZWQgZnJvbSByZS1lbnRyYW5jeS4KLS5TaCBSRVRVUk4gVkFM VUVTCi1UaGUKLS5GbiBjYWxsb3V0X2FjdGl2ZQotbWFjcm8gcmV0dXJucyB0aGUgc3RhdGUgb2Yg YSBjYWxsb3V0J3MKLS5FbSBhY3RpdmUKLWZsYWcuCi0uUHAKLVRoZQotLkZuIGNhbGxvdXRfcGVu ZGluZwotbWFjcm8gcmV0dXJucyB0aGUgc3RhdGUgb2YgYSBjYWxsb3V0J3MKLS5FbSBwZW5kaW5n Ci1mbGFnLgotLlBwCi1UaGUKLS5GbiBjYWxsb3V0X3Jlc2V0Ci1hbmQKLS5GbiBjYWxsb3V0X3Nj aGVkdWxlCi1mdW5jdGlvbiBmYW1pbGllcyByZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNhbGxvdXQg d2FzIHBlbmRpbmcgYmVmb3JlIHRoZSBuZXcKLWZ1bmN0aW9uIGludm9jYXRpb24gd2FzIHNjaGVk dWxlZC4KLS5QcAotVGhlCi0uRm4gY2FsbG91dF9zdG9wCi1hbmQKLS5GbiBjYWxsb3V0X2RyYWlu Ci1mdW5jdGlvbnMgcmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBjYWxsb3V0IHdhcyBzdGlsbCBwZW5k aW5nIHdoZW4gaXQgd2FzCi1jYWxsZWQgb3IgemVybyBvdGhlcndpc2UuCi1UaGUKLS5GbiB0aW1l b3V0Ci1mdW5jdGlvbiByZXR1cm5zIGEKLS5GdCBzdHJ1Y3QgY2FsbG91dF9oYW5kbGUKLXRoYXQg Y2FuIGJlIHBhc3NlZCB0bwotLkZuIHVudGltZW91dCAuCitmdW5jdGlvbnMgYXJlIGEgbGVnYWN5 IEFQSSB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLgorTmV3IGNvZGUg c2hvdWxkIG5vdCB1c2UgdGhlc2Ugcm91dGluZXMuCisuRWYKIC5TaCBISVNUT1JZCiBUaGUgY3Vy cmVudCB0aW1lb3V0IGFuZCB1bnRpbWVvdXQgcm91dGluZXMgYXJlIGJhc2VkIG9uIHRoZSB3b3Jr IG9mCiAuQW4gQWRhbSBNLiBDb3N0ZWxsbwpAQCAtODE1LDQgKzc3NSw0IEBACiAuQngKIGxpbmtl ZCBsaXN0CiBjYWxsb3V0IG1lY2hhbmlzbSB3aGljaCBvZmZlcmVkIE8obikgaW5zZXJ0aW9uIGFu ZCByZW1vdmFsIHJ1bm5pbmcgdGltZQotYnV0IGRpZCBub3QgZ2VuZXJhdGUgb3IgcmVxdWlyZSBo YW5kbGVzIGZvciB1bnRpbWVvdXQgb3BlcmF0aW9ucy4KK2FuZCBkaWQgbm90IGdlbmVyYXRlIG9y IHJlcXVpcmUgaGFuZGxlcyBmb3IgdW50aW1lb3V0IG9wZXJhdGlvbnMuCgo= --b1_a17c2070cbe9bbfcdf7c7bdb3c763fdd-- From owner-freebsd-net@FreeBSD.ORG Mon May 4 09:46:18 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1477C1CC for ; Mon, 4 May 2015 09:46:18 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C44441738 for ; Mon, 4 May 2015 09:46:17 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [127.0.1.5]) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9) with ESMTP id t449kHnu052860 for ; Mon, 4 May 2015 09:46:17 GMT (envelope-from daemon-user@phabric-backend.isc.freebsd.org) Received: (from daemon-user@localhost) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9/Submit) id t449kHVj052859; Mon, 4 May 2015 09:46:17 GMT (envelope-from daemon-user) Date: Mon, 4 May 2015 09:46:17 +0000 To: freebsd-net@freebsd.org From: "hselasky (Hans Petter Selasky)" Subject: [Differential] [Abandoned] D1893: Fix special case in ip_fragment() to produce a more sensible chain of packets Message-ID: <368bfd25dc49f0142dfc28260e5e5eaa@localhost.localdomain> X-Priority: 3 Thread-Topic: D1893: Fix special case in ip_fragment() to produce a more sensible chain of packets X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: In-Reply-To: References: Thread-Index: NTM5NTRkZmFhY2M5ZGMyZjg3NmZhODJjMjFlIFVHP+k= Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 09:46:18 -0000 hselasky abandoned this revision. hselasky added a comment. Committed to FreeBSD-head in r279281. REVISION DETAIL https://reviews.freebsd.org/D1893 EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: hselasky, glebius, ken, eri, nitroboost-gmail.com, pluknet, ae, np, melifaro, hrs, wollman, bryanv, rpaulo, adrian, bz, gnn, hiren, rwatson Cc: freebsd-net From owner-freebsd-net@FreeBSD.ORG Mon May 4 15:29:21 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5908E26A for ; Mon, 4 May 2015 15:29:21 +0000 (UTC) Received: from nm27-vm3.bullet.mail.ne1.yahoo.com (nm27-vm3.bullet.mail.ne1.yahoo.com [98.138.91.157]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 227081D1D for ; Mon, 4 May 2015 15:29:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1430753354; bh=dRPnm/MEyiqtkQMwU4787JRX2Mf4hWnLp/GrZ+4SK/c=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject; b=bhlAYrJBoVOmpeh5E843qAeWZXyYLNd/+6z7O889HEyZgIcQGgGWjYaVidHQP9NJiogdAHGaHXtHe/IlXse3TtQbW4CpahsVab2elWS43OIaAd37sEeGQnFm7P4PHrQc61e4g3EvJLOgFitfNRRH7kjPJnTeuJnbDJKeQfboKvmPIrMr9qIIV5VK5uR7iRXU1REfGbkyOJYZjbcUDYFY95tssYBOJ2pR5NCRKj66tsPl9ca0inEH1+iDU/YrLicr2Pxs55pGATJYGe62N/VBhrFwkjnrsZqxyFr/pS/3tJkRaGoC/SejX9CwaMpbMIlziVusyWwmFykSJu4mqPim8A== Received: from [98.138.100.118] by nm27.bullet.mail.ne1.yahoo.com with NNFMP; 04 May 2015 15:29:14 -0000 Received: from [98.138.88.232] by tm109.bullet.mail.ne1.yahoo.com with NNFMP; 04 May 2015 15:29:14 -0000 Received: from [127.0.0.1] by omp1032.mail.ne1.yahoo.com with NNFMP; 04 May 2015 15:29:14 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 576792.11858.bm@omp1032.mail.ne1.yahoo.com X-YMail-OSG: GkliKBkVM1mlzjHdSdg2KdlcIpInGw1ptVmu_Q8KH457IVxMIJJhw5VNMQAQ8ue pnJ3T2x_uwcY_4J3IgNdNkPbdyAljI7qS44svZ0N35g8tk_.nI7p0GoNHVShyaTnlYDa1fkMk0gZ LSeeVB7xBvpojyF2j6TiZzbTIJ4Yir2EJmhzIsoIM_E4cG1nbTAbd4TmhY1iqoY8KnOML4pNGCh1 ZmUtvCGpBdf9TO8l114b6AxBXe3T6O_0TfOaTRhG.8BcPwYinGtFjdV.vIGA15PejDMYyg6lUFJu NU.PJUEYUytF6newCEkhQBmOz7KDRTP1.PcJJhIi1U181VyizSSpsuuYFsUqhdrraqanJFrtMT74 BvbPjSm3voPV8Z5_uqzkJkqLk2pdi8zeFFWSE5tP.hJ1BCaMpGNVlh1o.l4MDh8qT1GVBBGHddic oT.b7JyjE2eD.nyG_rEYrvMxAQFhK6vtgE7v9B_RmC897ZugTWvUw.S8u0IlDga_yp8itl5h7D4Z rCgMwSUzUjQiRYg-- Received: by 98.138.105.252; Mon, 04 May 2015 15:29:14 +0000 Date: Mon, 4 May 2015 15:29:13 +0000 (UTC) From: Barney Cordoba Reply-To: Barney Cordoba To: Luigi Rizzo Cc: "freebsd-net@freebsd.org" Message-ID: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: References: Subject: Re: Fwd: netmap-ipfw on em0 em1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 15:29:21 -0000 It's not faster than "wedging" into the if_input()s. It simply can't be. Yo= ur getting packets at interrupt time as soon as their processed and =C2=A0y= ou there's no network stack involved, and your able to receive and transmit= without a process switch. At worst it's the same, without the extra plumbi= ng. It's not rocket science to "bypass the network stack". The only advantage of bringing it into user space would be that it's easier= to write threaded handlers for complex uses; but not as a firewall (which = is the limit of the context of my comment). You can do anything in the kern= el that you can do in user space. The reason a kernel module with if_input(= ) hooks is better is that you can use the standard kernel without all of th= e netmap hacks. You can just pop it into any kernel and it works. BC=20 On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo wrote= : =20 On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < freebsd-net@freebsd.org> wrote: > Frankly I'm baffled by netmap. You can easily write a loadable kernel > module that moves packets from 1 interface to another and hook in the > firewall; why would you want to bring them up into user space? It's 1000s > of lines of unnecessary code. > > Because it is much faster. The motivation for netmap-like solutions (that includes Intel's DPDK, PF_RING/DNA and several proprietary implementations) is speed: they bypass the entire network stack, and a good part of the device drivers, so you can access packets=20 10+ times faster. So things are actually the other way around: the 1000's of unnecessary lines of code (not really thousands, though) are those that you'd pay going through the standard network stack when you don't need any of its services. Going to userspace is just a side effect -- turns out to be easier to develop and run your packet processing code in userspace, but there are netmap clients (e.g. the VALE software switch) which run entirely in the kernel. cheers luigi > > >=C2=A0 =C2=A0 =C2=A0 On Sunday, May 3, 2015 3:10 AM, Raimundo Santos > wrote: > > >=C2=A0 Clarifying things for the sake of documentation: > > To use the host stack, append a ^ character after the name of the interfa= ce > you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) > > Examples: > > "kipfw em0" does nothing useful. > "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., > there are no host communications. > "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the > netmap-ipfw rules between the NIC and the host stack entry point associat= ed > (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) > with the same NIC. > > On 10 November 2014 at 18:29, Evandro Nunes > wrote: > > > dear professor luigi, > > i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU > and > > system using the rest, this system is a 8core at 2.4Ghz, but only one > core > > is in use > > in this next round of tests, my NIC is now an avoton with igb(4) driver= , > > currently with 4 queues per NIC (total 8 queues for kipfw bridge) > > i have read in your papers we should expect something similar to 1.48Mp= ps > > how can I benefit from the other CPUs which are completely idle? I trie= d > > CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw > so > > I could not set one CPU to userland while other for system > > > > All the papers talk about *generating* lots of packets, not *processing* > lots of packets. What this netmap example does is processing. If someone > really wants to use the host stack, the expected performance WILL BE wors= e > - what's the point of using a host stack bypassing tool/framework if > someone will end up using the host stack? > > And by generating, usually the papers means: minimum sized UDP packets. > > > > > > can you please enlighten? > > > > For everyone: read the manuals, read related and indicated materials > (papers, web sites, etc), and, as a least resource, read the code. Within > netmap's codes, it's more easy than it sounds. > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > --=20 -----------------------------------------+------------------------------- Prof. Luigi RIZZO, rizzo@iet.unipi.it=C2=A0 . Dip. di Ing. dell'Informazio= ne http://www.iet.unipi.it/~luigi/ =C2=A0 =C2=A0 =C2=A0 . Universita` di Pisa TEL=C2=A0 =C2=A0 =C2=A0 +39-050-2217533=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 . via Diotisalvi 2 Mobile=C2=A0 +39-338-6809875=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 . 56122 PISA (Italy) -----------------------------------------+------------------------------- _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Mon May 4 15:52:44 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 63FC4D33 for ; Mon, 4 May 2015 15:52:44 +0000 (UTC) Received: from sola.nimnet.asn.au (paqi.nimnet.asn.au [115.70.110.159]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B028B105C for ; Mon, 4 May 2015 15:52:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by sola.nimnet.asn.au (8.14.2/8.14.2) with ESMTP id t44FqXmW079973; Tue, 5 May 2015 01:52:33 +1000 (EST) (envelope-from smithi@nimnet.asn.au) Date: Tue, 5 May 2015 01:52:33 +1000 (EST) From: Ian Smith To: Barney Cordoba cc: Luigi Rizzo , "freebsd-net@freebsd.org" Subject: Re: Fwd: netmap-ipfw on em0 em1 In-Reply-To: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> Message-ID: <20150505014431.O26659@sola.nimnet.asn.au> References: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 15:52:44 -0000 On Mon, 4 May 2015 15:29:13 +0000, Barney Cordoba via freebsd-net wrote: > It's not faster than "wedging" into the if_input()s. It simply can't > be. Your getting packets at interrupt time as soon as their processed > and you there's no network stack involved, and your able to receive > and transmit without a process switch. At worst it's the same, > without the extra plumbing. It's not rocket science to "bypass the > network stack". > The only advantage of bringing it into user space would be that it's > easier to write threaded handlers for complex uses; but not as a > firewall (which is the limit of the context of my comment). You can > do anything in the kernel that you can do in user space. The reason a > kernel module with if_input() hooks is better is that you can use the > standard kernel without all of the netmap hacks. You can just pop it > into any kernel and it works. Barney, do you have a working alternative implementation you can share with us to help put this silly inferior netmap thingy out of business? Thanks, Ian [I'm sorry, pine doesn't quote messages from some yahoo users properly:] On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo wrote: On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < freebsd-net@freebsd.org> wrote: > Frankly I'm baffled by netmap. You can easily write a loadable kernel > module that moves packets from 1 interface to another and hook in the > firewall; why would you want to bring them up into user space? It's 1000s > of lines of unnecessary code. > > Because it is much faster. The motivation for netmap-like solutions (that includes Intel's DPDK, PF_RING/DNA and several proprietary implementations) is speed: they bypass the entire network stack, and a good part of the device drivers, so you can access packets 10+ times faster. So things are actually the other way around: the 1000's of unnecessary lines of code (not really thousands, though) are those that you'd pay going through the standard network stack when you don't need any of its services. Going to userspace is just a side effect -- turns out to be easier to develop and run your packet processing code in userspace, but there are netmap clients (e.g. the VALE software switch) which run entirely in the kernel. cheers luigi > > > On Sunday, May 3, 2015 3:10 AM, Raimundo Santos > wrote: > > > Clarifying things for the sake of documentation: > > To use the host stack, append a ^ character after the name of the interface > you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) > > Examples: > > "kipfw em0" does nothing useful. > "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., > there are no host communications. > "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the > netmap-ipfw rules between the NIC and the host stack entry point associated > (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) > with the same NIC. > > On 10 November 2014 at 18:29, Evandro Nunes > wrote: > > > dear professor luigi, > > i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU > and > > system using the rest, this system is a 8core at 2.4Ghz, but only one > core > > is in use > > in this next round of tests, my NIC is now an avoton with igb(4) driver, > > currently with 4 queues per NIC (total 8 queues for kipfw bridge) > > i have read in your papers we should expect something similar to 1.48Mpps > > how can I benefit from the other CPUs which are completely idle? I tried > > CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw > so > > I could not set one CPU to userland while other for system > > > > All the papers talk about *generating* lots of packets, not *processing* > lots of packets. What this netmap example does is processing. If someone > really wants to use the host stack, the expected performance WILL BE worse > - what's the point of using a host stack bypassing tool/framework if > someone will end up using the host stack? > > And by generating, usually the papers means: minimum sized UDP packets. > > > > > > can you please enlighten? > > > > For everyone: read the manuals, read related and indicated materials > (papers, web sites, etc), and, as a least resource, read the code. Within > netmap's codes, it's more easy than it sounds. > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > -- -----------------------------------------+------------------------------- Prof. Luigi RIZZO, rizzo@iet.unipi.it . Dip. di Ing. dell'Informazione http://www.iet.unipi.it/~luigi/ . Universita` di Pisa TEL +39-050-2217533 . via Diotisalvi 2 Mobile +39-338-6809875 . 56122 PISA (Italy) -----------------------------------------+------------------------------- From owner-freebsd-net@FreeBSD.ORG Mon May 4 16:28:30 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 83EFB631 for ; Mon, 4 May 2015 16:28:30 +0000 (UTC) Received: from mail-ob0-f177.google.com (mail-ob0-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4D21B13D0 for ; Mon, 4 May 2015 16:28:30 +0000 (UTC) Received: by obblk2 with SMTP id lk2so71101500obb.0 for ; Mon, 04 May 2015 09:28:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=Tf2BC+oF8vDKDEHYOYUljvApi3eiMqjZjZ33V+6kaGk=; b=D/66SJKXVheHfhARorBFOoWnjEgThHPNC8/MhV/Bw9Uub2Byhqxz50v+rolqZBnUNo 1qDpqD3aapu+XkCjMRiSk2ldgpUHfasNPtdIa08UUBNo3BpQ8DGsVrEgrcVIOhDYXrjQ u6Gwb6dJtazEtaC7vhISQzCaqkOgbQfHeY+lR4iL95DlKd2A4OuwomqfbHbGn/oPvhmR 3/hgdG5Xah1/3gpcL//bzauv9AinsoV8N9OCr2gVGvbHcbWQdQNOJFhvlWrV21g2XLD9 pbe3n/CcnUVspiLVZ0FF9SUOaDp9iRJQdmiGUH9aJrtRQWIhc+iBNu5LrOG8HhY1MyO4 Oh4A== X-Gm-Message-State: ALoCoQl6wysg1eUO9m7yt2tFMHpN874mhxQPMm73uIWSGSMVCP5oAMDfIWvkou3DtiC4TIip9PC9 X-Received: by 10.202.184.3 with SMTP id i3mr17846059oif.61.1430756501988; Mon, 04 May 2015 09:21:41 -0700 (PDT) Received: from ?IPv6:2610:160:11:33:a5e2:6d5a:67d9:998e? ([2610:160:11:33:a5e2:6d5a:67d9:998e]) by mx.google.com with ESMTPSA id a76sm8041013oig.11.2015.05.04.09.21.40 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 04 May 2015 09:21:40 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) Subject: Re: netmap-ipfw on em0 em1 From: Jim Thompson In-Reply-To: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> Date: Mon, 4 May 2015 11:21:40 -0500 Cc: Luigi Rizzo , "freebsd-net@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: References: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> To: Barney Cordoba X-Mailer: Apple Mail (2.2098) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 16:28:30 -0000 While it is a true statement that, "You can do anything in the kernel = that you can do in user space.=E2=80=9D, it is not a helpful statement. = Yes, the kernel is just a program. In a similar way, =E2=80=9CYou can just pop it into any kernel and it = works.=E2=80=9D is also not helpful. It works, but it doesn=E2=80=99t = work well, because of other infrastructure issues. Both of your statements reduce to the age-old, =E2=80=9Cproof is left as = an exercise for the student=E2=80=9D. There is a lot of kernel infrastructure that is just plain crusty(*) and = which directly impedes performance in this area. But there is plenty of cruft, Barney. Here are two threads which are = three years old, with the issues it points out still unresolved, and = multiple places where 100ns or more is lost: = https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033287.html= = https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033351.html= 100ns is death at 10Gbps with min-sized packets. quoting: http://luca.ntop.org/10g.pdf --- Taking as a reference a 10 Gbit/s link, the raw throughput is well below = the memory bandwidth of modern systems (between 6 and 8 GBytes/s for CPU = to memory, up to 5 GBytes/s on PCI-Express x16). How- ever a 10Gbit/s = link can generate up to 14.88 million Packets Per Second (pps), which = means that the system must be able to process one packet every 67.2 ns. = This translates to about 200 clock cycles even for the faster CPUs, and = might be a challenge considering the per- packet overheads normally = involved by general-purpose operating systems. The use of large frames = reduces the pps rate by a factor of 20..50, which is great on end hosts = only concerned in bulk data transfer. Monitoring systems and traffic = generators, however, must be able to deal with worst case conditions.=E2=80= =9D Forwarding and filtering must also be able to deal with worst case, and = nobody does well with kernel-based networking here. = https://github.com/gvnn3/netperf/blob/master/Documentation/Papers/ABSDCon2= 015Paper.pdf 10Gbps NICs are $200-$300 today, and they=E2=80=99ll be included on the = motherboard during the next hardware refresh. Broadwell-DE (Xeon-D) has = 10G in the SoC, and others are coming. 10Gbps switches can be had at around $100/port. This is exactly the = point at which the adoption curve for 1Gbps Ethernet ramped over a = decade ago. (*) A few more simple examples of cruft: Why, in 2015 does the kernel have a =E2=80=98fast forwarding=E2=80=99 = option, and worse, one that isn=E2=80=99t enabled by default? = Shouldn=E2=80=99t =E2=80=9Cfast forwarding" be the default? Why, in 2015, does FreeBSD not ship with IPSEC enabled in GENERIC? = (Reason: each and every time this has come up in recent memory, someone = has pointed out that it impacts performance. = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D128030) Why, in 2015, does anyone think it=E2=80=99s acceptable for =E2=80=9Cfast = forwarding=E2=80=9D to break IPSEC? Why, in 2015, does anyone think it=E2=80=99s acceptable that the = setkey(8) man page documents, of all things, DES-CBC and HMAC-MD5 for a = SA? That=E2=80=99s some kind of sick joke, right? This completely flies in the face of RFC 4835. > On May 4, 2015, at 10:29 AM, Barney Cordoba via freebsd-net = wrote: >=20 > It's not faster than "wedging" into the if_input()s. It simply can't = be. Your getting packets at interrupt time as soon as their processed = and you there's no network stack involved, and your able to receive and = transmit without a process switch. At worst it's the same, without the = extra plumbing. It's not rocket science to "bypass the network stack". > The only advantage of bringing it into user space would be that it's = easier to write threaded handlers for complex uses; but not as a = firewall (which is the limit of the context of my comment). You can do = anything in the kernel that you can do in user space. The reason a = kernel module with if_input() hooks is better is that you can use the = standard kernel without all of the netmap hacks. You can just pop it = into any kernel and it works. > BC=20 >=20 >=20 > On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo = wrote: >=20 >=20 > On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < > freebsd-net@freebsd.org> wrote: >=20 >> Frankly I'm baffled by netmap. You can easily write a loadable kernel >> module that moves packets from 1 interface to another and hook in the >> firewall; why would you want to bring them up into user space? It's = 1000s >> of lines of unnecessary code. >>=20 >>=20 > Because it is much faster. >=20 > The motivation for netmap-like > solutions (that includes Intel's DPDK, PF_RING/DNA > and several proprietary implementations) is speed: > they bypass the entire network stack, and a > good part of the device drivers, so you can access > packets=20 >=20 > 10+ times faster. > So things are actually the other way around: > the 1000's of unnecessary > lines of code > (not really thousands, though) > are > those that you'd pay going through the standard > network stack > when you > don't need any of its services. >=20 > Going to userspace is just a side effect -- turns out to > be easier to develop and run your packet processing code > in userspace, but there are netmap clients (e.g. the > VALE software switch) which run entirely in the kernel. >=20 > cheers > luigi >=20 >=20 >=20 >>=20 >>=20 >> On Sunday, May 3, 2015 3:10 AM, Raimundo Santos = >> wrote: >>=20 >>=20 >> Clarifying things for the sake of documentation: >>=20 >> To use the host stack, append a ^ character after the name of the = interface >> you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 = RELEASE.) >>=20 >> Examples: >>=20 >> "kipfw em0" does nothing useful. >> "kipfw netmap:em0" disconnects the NIC from the usual data path, = i.e., >> there are no host communications. >> "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the >> netmap-ipfw rules between the NIC and the host stack entry point = associated >> (the IP addresses configured on it with ifconfig, ARP and RARP, = etc...) >> with the same NIC. >>=20 >> On 10 November 2014 at 18:29, Evandro Nunes = >> wrote: >>=20 >>> dear professor luigi, >>> i have some numbers, I am filtering 773Kpps with kipfw using 60% of = CPU >> and >>> system using the rest, this system is a 8core at 2.4Ghz, but only = one >> core >>> is in use >>> in this next round of tests, my NIC is now an avoton with igb(4) = driver, >>> currently with 4 queues per NIC (total 8 queues for kipfw bridge) >>> i have read in your papers we should expect something similar to = 1.48Mpps >>> how can I benefit from the other CPUs which are completely idle? I = tried >>> CPU Affinity (cpuset) kipfw but system CPU usage follows userland = kipfw >> so >>> I could not set one CPU to userland while other for system >>>=20 >>=20 >> All the papers talk about *generating* lots of packets, not = *processing* >> lots of packets. What this netmap example does is processing. If = someone >> really wants to use the host stack, the expected performance WILL BE = worse >> - what's the point of using a host stack bypassing tool/framework if >> someone will end up using the host stack? >>=20 >> And by generating, usually the papers means: minimum sized UDP = packets. >>=20 >>=20 >>>=20 >>> can you please enlighten? >>>=20 >>=20 >> For everyone: read the manuals, read related and indicated materials >> (papers, web sites, etc), and, as a least resource, read the code. = Within >> netmap's codes, it's more easy than it sounds. >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org" >>=20 >>=20 >>=20 >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org" >>=20 >=20 >=20 >=20 > --=20 > = -----------------------------------------+------------------------------- > Prof. Luigi RIZZO, rizzo@iet.unipi.it . Dip. di Ing. = dell'Informazione > http://www.iet.unipi.it/~luigi/ . Universita` di Pisa > TEL +39-050-2217533 . via Diotisalvi 2 > Mobile +39-338-6809875 . 56122 PISA (Italy) > = -----------------------------------------+------------------------------- > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >=20 >=20 >=20 > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Mon May 4 16:44:18 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5E6A5F68 for ; Mon, 4 May 2015 16:44:18 +0000 (UTC) Received: from nm14.bullet.mail.ne1.yahoo.com (nm14.bullet.mail.ne1.yahoo.com [98.138.90.77]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2851E1663 for ; Mon, 4 May 2015 16:44:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1430757707; bh=DqmWhD+ZsuhubN1zWafERTVHn1zw/ECA8DaU2vEHp+8=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject; b=MF/jbDDhnFf0Wm5IxofRTw+FVy9RKX1TuNajfkGDyerlxj5Bc3flx55caumVMwJh73cp0fsQ8bi2P+Og90sfpnWcTHNcXmYaUAZw0jH2hwOtZzxZV3UVxvIsHX5XiYq5tIIrHu1N3Ik+tMA+CgtYytdBv2rasw1FmAOZoWaJAbjCBm4e7z9GrxuSEh/4Ogpmq29dZWXTntfsREhsMTCQvX8wUwhWMz9jU4g40B76PAhp6hRBWF6oYWwUdhqZ++1qFu5A2UMZm2h9VmI1jhqZgqgwTZXXHvvQPQcM4QB2h2p/BCLZjuZXGxSfZt8z2wDC/KvfdQbZ1mk/n8SOk4cAQg== Received: from [98.138.100.118] by nm14.bullet.mail.ne1.yahoo.com with NNFMP; 04 May 2015 16:41:47 -0000 Received: from [98.138.89.240] by tm109.bullet.mail.ne1.yahoo.com with NNFMP; 04 May 2015 16:41:47 -0000 Received: from [127.0.0.1] by omp1013.mail.ne1.yahoo.com with NNFMP; 04 May 2015 16:41:47 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 943443.54312.bm@omp1013.mail.ne1.yahoo.com X-YMail-OSG: XPh82_MVM1klyRmqL5x.FURRQwGlBWybUWtABFBiWwra2wmvTHt9x9.Jn8TXF5U GvbfDpYe2njWCa6iEZ5sJG_jLHeSWH.yeuo37lbd49g0yc6DwcRpbXjS2Ty4J4bMOLorNk6_nx4E bwJGQIpJZxZLZqFcYLcaR3sIXX9bEzdAkTrOtBybVptNoiyYflVWCdWAEBVwHN6y1pcIZGAFcUsF pOYe4Qf0hyGjvSNlMSk2QhN3efGqVIpGFxhg7xUAs_2u.u1fBGF3FnE5WQZA0DG3k1MWozIOnYEg 3zKE4iodrxEV4yTYqdHCntheZ8RwB2Aqqn2XXOiryrvXy9Jp7nLDIx5zBOY_Abc72PYcFX7kXE2k xQOTt_18meqpLfl9gnNlqVHyBXbgpQQvCEDDUnzs5pxV86crGliBwl.Y3.BSp9mBFsgIf9sM3eLI l4BYoMj.ujqN2ueaFV.XCl6oDq3bHyzp_0_JpW_Q9gZcKooZqUWjeASVImkPsrwgPJIOrQeYn.SF AEMoHelEJrN6FEa4- Received: by 98.138.105.217; Mon, 04 May 2015 16:41:47 +0000 Date: Mon, 4 May 2015 16:41:46 +0000 (UTC) From: Barney Cordoba Reply-To: Barney Cordoba To: Ian Smith Cc: Luigi Rizzo , "freebsd-net@freebsd.org" Message-ID: <268446884.1206550.1430757707012.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: <20150505014431.O26659@sola.nimnet.asn.au> References: <20150505014431.O26659@sola.nimnet.asn.au> Subject: Re: Fwd: netmap-ipfw on em0 em1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 16:44:18 -0000 Nothing freely available. Many commercial companies have done such things. = Why limit the general community by force-feeding =C2=A0a really fast packet= generator into the mainstream by squashing other ideas in their infancy? A= nyone who understands how the kernel works understands what I'm saying. A p= acket forwarder is a 3 day project (which means 2 weeks as we all know).=C2= =A0 When you're can't debate the merits of an implementation without having som= e weenie ask if you have a finished implementation to offer up for free, yo= u end up stuck with misguided junk like netgraph and flowtables.=C2=A0 The mediocrity of freebsd network "utilities" is a function of the collecti= ve imagination of its users. Its unfortunate that these lists can't be used= to brainstorm better potential better ideas. Luigi's efforts are not dimin= ished by arguing that there is a better way to do something that he recomme= nds to be done with netmap. BC On Monday, May 4, 2015 11:52 AM, Ian Smith wrot= e: =20 On Mon, 4 May 2015 15:29:13 +0000, Barney Cordoba via freebsd-net wrote: > It's not faster than "wedging" into the if_input()s. It simply can't=20 > be. Your getting packets at interrupt time as soon as their processed=20 > and =C2=A0you there's no network stack involved, and your able to receiv= e=20 > and transmit without a process switch. At worst it's the same,=20 > without the extra plumbing. It's not rocket science to "bypass the=20 > network stack". > The only advantage of bringing it into user space would be that it's=20 > easier to write threaded handlers for complex uses; but not as a=20 > firewall (which is the limit of the context of my comment). You can=20 > do anything in the kernel that you can do in user space. The reason a=20 > kernel module with if_input() hooks is better is that you can use the=20 > standard kernel without all of the netmap hacks. You can just pop it=20 > into any kernel and it works. Barney, do you have a working alternative implementation you can share=20 with us to help put this silly inferior netmap thingy out of business? Thanks, Ian [I'm sorry, pine doesn't quote messages from some yahoo users properly:] On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo wrote: On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < freebsd-net@freebsd.org> wrote: > Frankly I'm baffled by netmap. You can easily write a loadable kernel > module that moves packets from 1 interface to another and hook in the > firewall; why would you want to bring them up into user space? It's 1000s > of lines of unnecessary code. > > Because it is much faster. The motivation for netmap-like solutions (that includes Intel's DPDK, PF_RING/DNA and several proprietary implementations) is speed: they bypass the entire network stack, and a good part of the device drivers, so you can access packets=20 10+ times faster. So things are actually the other way around: the 1000's of unnecessary lines of code (not really thousands, though) are those that you'd pay going through the standard network stack when you don't need any of its services. Going to userspace is just a side effect -- turns out to be easier to develop and run your packet processing code in userspace, but there are netmap clients (e.g. the VALE software switch) which run entirely in the kernel. cheers luigi > > >=C2=A0 =C2=A0 =C2=A0 On Sunday, May 3, 2015 3:10 AM, Raimundo Santos > wrote: > > >=C2=A0 Clarifying things for the sake of documentation: > > To use the host stack, append a ^ character after the name of the interfa= ce > you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) > > Examples: > > "kipfw em0" does nothing useful. > "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., > there are no host communications. > "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the > netmap-ipfw rules between the NIC and the host stack entry point associat= ed > (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) > with the same NIC. > > On 10 November 2014 at 18:29, Evandro Nunes > wrote: > > > dear professor luigi, > > i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU > and > > system using the rest, this system is a 8core at 2.4Ghz, but only one > core > > is in use > > in this next round of tests, my NIC is now an avoton with igb(4) driver= , > > currently with 4 queues per NIC (total 8 queues for kipfw bridge) > > i have read in your papers we should expect something similar to 1.48Mp= ps > > how can I benefit from the other CPUs which are completely idle? I trie= d > > CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw > so > > I could not set one CPU to userland while other for system > > > > All the papers talk about *generating* lots of packets, not *processing* > lots of packets. What this netmap example does is processing. If someone > really wants to use the host stack, the expected performance WILL BE wors= e > - what's the point of using a host stack bypassing tool/framework if > someone will end up using the host stack? > > And by generating, usually the papers means: minimum sized UDP packets. > > > > > > can you please enlighten? > > > > For everyone: read the manuals, read related and indicated materials > (papers, web sites, etc), and, as a least resource, read the code. Within > netmap's codes, it's more easy than it sounds. > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > --=20 -----------------------------------------+------------------------------- Prof. Luigi RIZZO, rizzo@iet.unipi.it=C2=A0 . Dip. di Ing. dell'Informazio= ne http://www.iet.unipi.it/~luigi/ =C2=A0 =C2=A0 =C2=A0 . Universita` di Pisa TEL=C2=A0 =C2=A0 =C2=A0 +39-050-2217533=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 . via Diotisalvi 2 Mobile=C2=A0 +39-338-6809875=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 . 56122 PISA (Italy) -----------------------------------------+------------------------------- From owner-freebsd-net@FreeBSD.ORG Mon May 4 16:56:33 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7120F6BD for ; Mon, 4 May 2015 16:56:33 +0000 (UTC) Received: from nm30-vm1.bullet.mail.ne1.yahoo.com (nm30-vm1.bullet.mail.ne1.yahoo.com [98.138.90.46]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3930717AE for ; Mon, 4 May 2015 16:56:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1430758432; bh=kzW7jxGVCa+/TnW3EsP2PGk0/ND5AWRE6JXgfIkSuzk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject; b=Wu+ycNZuFOsI/a4s7D+4EaSheVkBtiREi3oIAYtm/a0pMKmmwAmcJqhwf38UYwuYzjdnTA3BJ0wt7D0OWy2e4/dk3c53cypJWjWiS+U28+6FNhqMAjf94VcWfVAEIZC+xkXd5fzx2IYFjuG+SeM5ZLc/C6WNkdBKIARV/sZXVOZt2IKiqXL2CIFY8Eeb1unKI/bztmQbX/h3okEjZerTNfW0jZCd94fP41/93j8pq51pz5CThnzFEPEHbhQg/5Bmwu/iNfjHKaUSmHXtw++zAmMKev8cMMELQEsQo71SjP2U9nislYtGJtZvOPwYCP7Ijs3gQPm4KNAM0jRPh1wTYA== Received: from [98.138.100.116] by nm30.bullet.mail.ne1.yahoo.com with NNFMP; 04 May 2015 16:53:52 -0000 Received: from [98.138.89.175] by tm107.bullet.mail.ne1.yahoo.com with NNFMP; 04 May 2015 16:53:52 -0000 Received: from [127.0.0.1] by omp1031.mail.ne1.yahoo.com with NNFMP; 04 May 2015 16:53:52 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 27501.72420.bm@omp1031.mail.ne1.yahoo.com X-YMail-OSG: lOUShNgVM1lvD2juE4H6iyCHDG2gyXKHmtgBLvCHtsKFvKCagDatXYytXMmjxBn HODVm6o0NGo_7nDT96qnZ2.sfMfO8AVet_EAVsLb5Od7XKop8w_URShal0Cn462IrhEehJzxv9U3 iaCjEzbVDa8FL7WVHWSbKrggJYnKNEFqm3QrpB_x14Fe0p2svFOrwjEVxUrJORqPajNvu9uqHFLG 8VDOcNuIbvQ3hL3eX7uD6vyu_pajvYBGd8Bc9_9dJLerPdqPKsrUthxw_CHNHydID6ZQpzn_H3pY e3xgh2AvF8meyJPXgbd15GHoFqmTu3Qx9Z0zIHyFxD9pyiIUsyU7Y4GTAB2N.DYsFTons0yXWMSJ FPRZV4lDLT6omNVx6ok..OQ.OeukoO9jPJELQUtaWnr19Hb5OSakq7zlF6Ba4EdfPLT9HEByyPnF hV8a6UJGk4jsInNjos7zVIxWiilzX_LiJA9ETGTUyiCJ2kGcNTR7S2HwZB9t5cTCTXhlceUxirs1 jYTrLilyfWwS9xf_a Received: by 98.138.101.163; Mon, 04 May 2015 16:53:51 +0000 Date: Mon, 4 May 2015 16:53:51 +0000 (UTC) From: Barney Cordoba Reply-To: Barney Cordoba To: Jim Thompson Cc: "freebsd-net@freebsd.org" , Luigi Rizzo Message-ID: <612079785.1200069.1430758431058.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: References: Subject: Re: netmap-ipfw on em0 em1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 16:56:33 -0000 I'll assume you're just not that clear on specific implementation. Hooking = directly into if_input() bypasses all of the "cruft". It basically uses the= driver "as-is", so any driver can be used and it will be as good as the dr= iver. The bloat starts in if_ethersubr.c, which is easily completely avoide= d. Most drivers need to be tuned (or modified a bit) as most freebsd driver= s are full of bloat and forced into a bad, cookie-cutter type way of doing = things. The problem with doing things in user space is that user space is unpredict= able. Things work just dandily when nothing else is going on, but you can't= control when a user space program gets context under heavy loads. In the k= ernel you can control almost exactly what the polling interval is through i= nterrupt moderation on most modern controllers.=C2=A0 Many otherwise credible programmers argued for years that polling was "fast= er", but it was only faster in artificially controlled environment. Its mai= nly because 1) they're not thinking about the entire context of what "can" = happen, and 2) because they test under unrealistic conditions that don't re= present real world events, and 3) they don't have properly tuned ethernet d= rivers. BC=20 On Monday, May 4, 2015 12:37 PM, Jim Thompson wrote: =20 =20 While it is a true statement that, "You can do anything in the kernel that = you can do in user space.=E2=80=9D, it is not a helpful statement.=C2=A0 Ye= s, the kernel is just a program. In a similar way, =E2=80=9CYou can just pop it into any kernel and it works= .=E2=80=9D is also not helpful.=C2=A0 It works, but it doesn=E2=80=99t work= well, because of other infrastructure issues. Both of your statements reduce to the age-old, =E2=80=9Cproof is left as an= exercise for the student=E2=80=9D. There is a lot of kernel infrastructure that is just plain crusty(*) and wh= ich directly impedes performance in this area. But there is plenty of cruft, Barney.=C2=A0 Here are two threads which are = three years old, with the issues it points out still unresolved, and multip= le places where 100ns or more is lost: https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033287.html https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033351.html 100ns is death at 10Gbps with min-sized packets. quoting: http://luca.ntop.org/10g.pdf --- Taking as a reference a 10 Gbit/s link, the raw throughput is well below th= e memory bandwidth of modern systems (between 6 and 8 GBytes/s for CPU to m= emory, up to 5 GBytes/s on PCI-Express x16). How- ever a 10Gbit/s link can = generate up to 14.88 million Packets Per Second (pps), which means that the= system must be able to process one packet every 67.2 ns. This translates t= o about 200 clock cycles even for the faster CPUs, and might be a challenge= considering the per- packet overheads normally involved by general-purpose= operating systems. The use of large frames reduces the pps rate by a facto= r of 20..50, which is great on end hosts only concerned in bulk data transf= er.=C2=A0 Monitoring systems and traffic generators, however, must be able = to deal with worst case conditions.=E2=80=9D Forwarding and filtering must also be able to deal with worst case, and nob= ody does well with kernel-based networking here.=C2=A0 https://github.com/g= vnn3/netperf/blob/master/Documentation/Papers/ABSDCon2015Paper.pdf 10Gbps NICs are $200-$300 today, and they=E2=80=99ll be included on the mot= herboard during the next hardware refresh.=C2=A0 Broadwell-DE (Xeon-D) has = 10G in the SoC, and others are coming. 10Gbps switches can be had at around $100/port.=C2=A0 This is exactly the p= oint at which the adoption curve for 1Gbps Ethernet ramped over a decade ag= o. (*) A few more simple examples of cruft: Why, in 2015 does the kernel have a =E2=80=98fast forwarding=E2=80=99 optio= n, and worse, one that isn=E2=80=99t enabled by default?=C2=A0 Shouldn=E2= =80=99t =E2=80=9Cfast forwarding" be the default? Why, in 2015, does FreeBSD not ship with IPSEC enabled in GENERIC?=C2=A0 (R= eason: each and every time this has come up in recent memory, someone has p= ointed out that it impacts performance.=C2=A0 https://bugs.freebsd.org/bugz= illa/show_bug.cgi?id=3D128030) Why, in 2015, does anyone think it=E2=80=99s acceptable for =E2=80=9Cfast f= orwarding=E2=80=9D to break IPSEC? Why, in 2015, does anyone think it=E2=80=99s acceptable that the setkey(8) = man page documents, of all things, DES-CBC and HMAC-MD5 for a SA?=C2=A0 Tha= t=E2=80=99s some kind of sick joke, right? This completely flies in the face of RFC 4835. > On May 4, 2015, at 10:29 AM, Barney Cordoba via freebsd-net wrote: >=20 > It's not faster than "wedging" into the if_input()s. It simply can't be. = Your getting packets at interrupt time as soon as their processed and=C2=A0= you there's no network stack involved, and your able to receive and transm= it without a process switch. At worst it's the same, without the extra plum= bing. It's not rocket science to "bypass the network stack". > The only advantage of bringing it into user space would be that it's easi= er to write threaded handlers for complex uses; but not as a firewall (whic= h is the limit of the context of my comment). You can do anything in the ke= rnel that you can do in user space. The reason a kernel module with if_inpu= t() hooks is better is that you can use the standard kernel without all of = the netmap hacks. You can just pop it into any kernel and it works. > BC=20 >=20 >=20 >=C2=A0 =C2=A0 On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo wrote: >=20 >=20 > On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < > freebsd-net@freebsd.org> wrote: >=20 >> Frankly I'm baffled by netmap. You can easily write a loadable kernel >> module that moves packets from 1 interface to another and hook in the >> firewall; why would you want to bring them up into user space? It's 1000= s >> of lines of unnecessary code. >>=20 >>=20 > Because it is much faster. >=20 > The motivation for netmap-like > solutions (that includes Intel's DPDK, PF_RING/DNA > and several proprietary implementations) is speed: > they bypass the entire network stack, and a > good part of the device drivers, so you can access > packets=20 >=20 > 10+ times faster. > So things are actually the other way around: > the 1000's of unnecessary > lines of code > (not really thousands, though) > are > those that you'd pay going through the standard > network stack > when you > don't need any of its services. >=20 > Going to userspace is just a side effect -- turns out to > be easier to develop and run your packet processing code > in userspace, but there are netmap clients (e.g. the > VALE software switch) which run entirely in the kernel. >=20 > cheers > luigi >=20 >=20 >=20 >>=20 >>=20 >>=C2=A0 =C2=A0 =C2=A0 On Sunday, May 3, 2015 3:10 AM, Raimundo Santos >> wrote: >>=20 >>=20 >>=C2=A0 Clarifying things for the sake of documentation: >>=20 >> To use the host stack, append a ^ character after the name of the interf= ace >> you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.= ) >>=20 >> Examples: >>=20 >> "kipfw em0" does nothing useful. >> "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., >> there are no host communications. >> "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the >> netmap-ipfw rules between the NIC and the host stack entry point associa= ted >> (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) >> with the same NIC. >>=20 >> On 10 November 2014 at 18:29, Evandro Nunes >> wrote: >>=20 >>> dear professor luigi, >>> i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU >> and >>> system using the rest, this system is a 8core at 2.4Ghz, but only one >> core >>> is in use >>> in this next round of tests, my NIC is now an avoton with igb(4) driver= , >>> currently with 4 queues per NIC (total 8 queues for kipfw bridge) >>> i have read in your papers we should expect something similar to 1.48Mp= ps >>> how can I benefit from the other CPUs which are completely idle? I trie= d >>> CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw >> so >>> I could not set one CPU to userland while other for system >>>=20 >>=20 >> All the papers talk about *generating* lots of packets, not *processing* >> lots of packets. What this netmap example does is processing. If someone >> really wants to use the host stack, the expected performance WILL BE wor= se >> - what's the point of using a host stack bypassing tool/framework if >> someone will end up using the host stack? >>=20 >> And by generating, usually the papers means: minimum sized UDP packets. >>=20 >>=20 >>>=20 >>> can you please enlighten? >>>=20 >>=20 >> For everyone: read the manuals, read related and indicated materials >> (papers, web sites, etc), and, as a least resource, read the code. Withi= n >> netmap's codes, it's more easy than it sounds. >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >>=20 >>=20 >>=20 >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >>=20 >=20 >=20 >=20 > --=20 > -----------------------------------------+------------------------------- > Prof. Luigi RIZZO, rizzo@iet.unipi.it=C2=A0 . Dip. di Ing. dell'Informazi= one > http://www.iet.unipi.it/~luigi/ =C2=A0 =C2=A0 =C2=A0 . Universita` di Pis= a > TEL=C2=A0 =C2=A0 =C2=A0 +39-050-2217533=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 . via Diotisalvi 2 > Mobile=C2=A0 +39-338-6809875=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 . 56122 PISA (Italy) > -----------------------------------------+------------------------------- > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >=20 >=20 >=20 > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Mon May 4 17:32:48 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4833F646 for ; Mon, 4 May 2015 17:32:48 +0000 (UTC) Received: from mail-oi0-f53.google.com (mail-oi0-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0DD5C1C1A for ; Mon, 4 May 2015 17:32:47 +0000 (UTC) Received: by oica37 with SMTP id a37so117665391oic.0 for ; Mon, 04 May 2015 10:32:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=iwlWQ6Ru6KxhYv4Z9wOr32hvGjn9znIdd7cuc2zGYqk=; b=i/3Has5z1tzamTwFM3+s6mRUJxBklDV09uCbpljaORKHqlT9xtDan/72+0z5NQYBV7 aZ2k0dfXWAhWV/uT+pw1OK7NT+mTdKV3uVpGmxKn2uFs9LiZZ1wnh8kMqyeU7ycRgdPg gDpdLMSQdx7LtxoWMSPLxs8P9QIoTvn9Ch7QgDkx/Lywx9a5vNOQUU2rHRIkXbnHAj7V 0w/Xyj/x6lkBP9WtuEroNyfo1F96RzpJL7wk+lVDNAYUTqXZ/GiCPSVhObH/Iwd2dut2 tHVA/srZ8Si5KJbd+NTaEVTYeJV6ejoiGPD+6aV+Xq0kc7pOK7t2M7j8lnuISwWE76q7 cJ0w== X-Gm-Message-State: ALoCoQlYPhiUaMBNxGzaN1peiQfjZ8n5U03b4f1nJqwTLXs012ZkBsV6cMq+ThdvKfBgDBkHMUol X-Received: by 10.202.217.196 with SMTP id q187mr596562oig.64.1430760760771; Mon, 04 May 2015 10:32:40 -0700 (PDT) Received: from ?IPv6:2610:160:11:33:a5e2:6d5a:67d9:998e? ([2610:160:11:33:a5e2:6d5a:67d9:998e]) by mx.google.com with ESMTPSA id sm8sm3108883obb.13.2015.05.04.10.32.39 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 04 May 2015 10:32:39 -0700 (PDT) Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) Subject: Re: netmap-ipfw on em0 em1 From: Jim Thompson In-Reply-To: <612079785.1200069.1430758431058.JavaMail.yahoo@mail.yahoo.com> Date: Mon, 4 May 2015 12:32:38 -0500 Cc: "freebsd-net@freebsd.org" , Luigi Rizzo Message-Id: <9A95B98D-9B33-4F13-9106-504596365F3C@netgate.com> References: <612079785.1200069.1430758431058.JavaMail.yahoo@mail.yahoo.com> To: Barney Cordoba X-Mailer: Apple Mail (2.2098) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 17:32:48 -0000 > On May 4, 2015, at 11:53 AM, Barney Cordoba = wrote: >=20 > I'll assume you're just not that clear on specific implementation. Thank you for your assumption. Have you noticed that you tend to argue = by insinuating that the other party is stupid, or at best, responsible = for =E2=80=9Chacks=E2=80=9D? > Hooking directly into if_input() bypasses all of the "cruft". It = basically uses the driver "as-is", so any driver can be used and it will = be as good as the driver. The bloat starts in if_ethersubr.c, which is = easily completely avoided. Most drivers need to be tuned (or modified a = bit) as most freebsd drivers are full of bloat and forced into a bad, = cookie-cutter type way of doing things. I am familiar, as I am familiar with exactly how fast DPDK (which uses = the FreeBSD NIC drivers) can route and filter, .vs how fast FreeBSD can = do the same. They are, quite simply, an order of magnitude apart. > The problem with doing things in user space is that user space is = unpredictable. The problem with people who think this way is that they forget that the = kernel exists to run on behalf of user space, not the other way around. > Things work just dandily when nothing else is going on, but you can't = control when a user space program gets context under heavy loads. the kernel is certainly in control of same. > In the kernel you can control almost exactly what the polling interval = is through interrupt moderation on most modern controllers.=20 >=20 > Many otherwise credible programmers argued for years that polling was = "faster", but it was only faster in artificially controlled environment. = Its mainly because 1) they're not thinking about the entire context of = what "can" happen, and 2) because they test under unrealistic conditions = that don't represent real world events, and 3) they don't have properly = tuned ethernet drivers. >=20 > BC >=20 >=20 >=20 > On Monday, May 4, 2015 12:37 PM, Jim Thompson wrote: >=20 >=20 >=20 > While it is a true statement that, "You can do anything in the kernel = that you can do in user space.=E2=80=9D, it is not a helpful statement. = Yes, the kernel is just a program. > In a similar way, =E2=80=9CYou can just pop it into any kernel and it = works.=E2=80=9D is also not helpful. It works, but it doesn=E2=80=99t = work well, because of other infrastructure issues. > Both of your statements reduce to the age-old, =E2=80=9Cproof is left = as an exercise for the student=E2=80=9D. >=20 > There is a lot of kernel infrastructure that is just plain crusty(*) = and which directly impedes performance in this area. >=20 > But there is plenty of cruft, Barney. Here are two threads which are = three years old, with the issues it points out still unresolved, and = multiple places where 100ns or more is lost: > = https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033287.html= = > = https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033351.html= = >=20 > 100ns is death at 10Gbps with min-sized packets. >=20 > quoting: http://luca.ntop.org/10g.pdf > --- > Taking as a reference a 10 Gbit/s link, the raw throughput is well = below the memory bandwidth of modern systems (between 6 and 8 GBytes/s = for CPU to memory, up to 5 GBytes/s on PCI-Express x16). How- ever a = 10Gbit/s link can generate up to 14.88 million Packets Per Second (pps), = which means that the system must be able to process one packet every = 67.2 ns. This translates to about 200 clock cycles even for the faster = CPUs, and might be a challenge considering the per- packet overheads = normally involved by general-purpose operating systems. The use of large = frames reduces the pps rate by a factor of 20..50, which is great on end = hosts only concerned in bulk data transfer. Monitoring systems and = traffic generators, however, must be able to deal with worst case = conditions.=E2=80=9D >=20 > Forwarding and filtering must also be able to deal with worst case, = and nobody does well with kernel-based networking here. = https://github.com/gvnn3/netperf/blob/master/Documentation/Papers/ABSDCon2= 015Paper.pdf = >=20 > 10Gbps NICs are $200-$300 today, and they=E2=80=99ll be included on = the motherboard during the next hardware refresh. Broadwell-DE (Xeon-D) = has 10G in the SoC, and others are coming. > 10Gbps switches can be had at around $100/port. This is exactly the = point at which the adoption curve for 1Gbps Ethernet ramped over a = decade ago. >=20 >=20 > (*) A few more simple examples of cruft: >=20 > Why, in 2015 does the kernel have a =E2=80=98fast forwarding=E2=80=99 = option, and worse, one that isn=E2=80=99t enabled by default? = Shouldn=E2=80=99t =E2=80=9Cfast forwarding" be the default? >=20 > Why, in 2015, does FreeBSD not ship with IPSEC enabled in GENERIC? = (Reason: each and every time this has come up in recent memory, someone = has pointed out that it impacts performance. = https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D128030 = ) >=20 > Why, in 2015, does anyone think it=E2=80=99s acceptable for =E2=80=9Cfas= t forwarding=E2=80=9D to break IPSEC? >=20 > Why, in 2015, does anyone think it=E2=80=99s acceptable that the = setkey(8) man page documents, of all things, DES-CBC and HMAC-MD5 for a = SA? That=E2=80=99s some kind of sick joke, right? > This completely flies in the face of RFC 4835. >=20 >=20 > > On May 4, 2015, at 10:29 AM, Barney Cordoba via freebsd-net = > wrote: > >=20 > > It's not faster than "wedging" into the if_input()s. It simply can't = be. Your getting packets at interrupt time as soon as their processed = and you there's no network stack involved, and your able to receive and = transmit without a process switch. At worst it's the same, without the = extra plumbing. It's not rocket science to "bypass the network stack". > > The only advantage of bringing it into user space would be that it's = easier to write threaded handlers for complex uses; but not as a = firewall (which is the limit of the context of my comment). You can do = anything in the kernel that you can do in user space. The reason a = kernel module with if_input() hooks is better is that you can use the = standard kernel without all of the netmap hacks. You can just pop it = into any kernel and it works. > > BC=20 > >=20 > >=20 > > On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo > wrote: > >=20 > >=20 > > On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < > > freebsd-net@freebsd.org > wrote: > >=20 > >> Frankly I'm baffled by netmap. You can easily write a loadable = kernel > >> module that moves packets from 1 interface to another and hook in = the > >> firewall; why would you want to bring them up into user space? It's = 1000s > >> of lines of unnecessary code. > >>=20 > >>=20 > > Because it is much faster. > >=20 > > The motivation for netmap-like > > solutions (that includes Intel's DPDK, PF_RING/DNA > > and several proprietary implementations) is speed: > > they bypass the entire network stack, and a > > good part of the device drivers, so you can access > > packets=20 > >=20 > > 10+ times faster. > > So things are actually the other way around: > > the 1000's of unnecessary > > lines of code > > (not really thousands, though) > > are > > those that you'd pay going through the standard > > network stack > > when you > > don't need any of its services. > >=20 > > Going to userspace is just a side effect -- turns out to > > be easier to develop and run your packet processing code > > in userspace, but there are netmap clients (e.g. the > > VALE software switch) which run entirely in the kernel. > >=20 > > cheers > > luigi > >=20 > >=20 > >=20 > >>=20 > >>=20 > >> On Sunday, May 3, 2015 3:10 AM, Raimundo Santos = > > >> wrote: > >>=20 > >>=20 > >> Clarifying things for the sake of documentation: > >>=20 > >> To use the host stack, append a ^ character after the name of the = interface > >> you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 = RELEASE.) > >>=20 > >> Examples: > >>=20 > >> "kipfw em0" does nothing useful. > >> "kipfw netmap:em0" disconnects the NIC from the usual data path, = i.e., > >> there are no host communications. > >> "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the > >> netmap-ipfw rules between the NIC and the host stack entry point = associated > >> (the IP addresses configured on it with ifconfig, ARP and RARP, = etc...) > >> with the same NIC. > >>=20 > >> On 10 November 2014 at 18:29, Evandro Nunes = > > >> wrote: > >>=20 > >>> dear professor luigi, > >>> i have some numbers, I am filtering 773Kpps with kipfw using 60% = of CPU > >> and > >>> system using the rest, this system is a 8core at 2.4Ghz, but only = one > >> core > >>> is in use > >>> in this next round of tests, my NIC is now an avoton with igb(4) = driver, > >>> currently with 4 queues per NIC (total 8 queues for kipfw bridge) > >>> i have read in your papers we should expect something similar to = 1.48Mpps > >>> how can I benefit from the other CPUs which are completely idle? I = tried > >>> CPU Affinity (cpuset) kipfw but system CPU usage follows userland = kipfw > >> so > >>> I could not set one CPU to userland while other for system > >>>=20 > >>=20 > >> All the papers talk about *generating* lots of packets, not = *processing* > >> lots of packets. What this netmap example does is processing. If = someone > >> really wants to use the host stack, the expected performance WILL = BE worse > >> - what's the point of using a host stack bypassing tool/framework = if > >> someone will end up using the host stack? > >>=20 > >> And by generating, usually the papers means: minimum sized UDP = packets. > >>=20 > >>=20 > >>>=20 > >>> can you please enlighten? > >>>=20 > >>=20 > >> For everyone: read the manuals, read related and indicated = materials > >> (papers, web sites, etc), and, as a least resource, read the code. = Within > >> netmap's codes, it's more easy than it sounds. > >> _______________________________________________ > >> freebsd-net@freebsd.org mailing = list > >> http://lists.freebsd.org/mailman/listinfo/freebsd-net = > >> To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org = " > >>=20 > >>=20 > >>=20 > >> _______________________________________________ > >> freebsd-net@freebsd.org mailing = list > >> http://lists.freebsd.org/mailman/listinfo/freebsd-net = > >> To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org = " > >>=20 > >=20 > >=20 > >=20 > > --=20 > > = -----------------------------------------+------------------------------- > > Prof. Luigi RIZZO, rizzo@iet.unipi.it . = Dip. di Ing. dell'Informazione > > http://www.iet.unipi.it/~luigi/ = . Universita` di Pisa > > TEL +39-050-2217533 . via Diotisalvi 2 > > Mobile +39-338-6809875 . 56122 PISA (Italy) >=20 > > = -----------------------------------------+------------------------------- > > _______________________________________________ > > freebsd-net@freebsd.org mailing = list > > http://lists.freebsd.org/mailman/listinfo/freebsd-net = > > To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org = " > >=20 > >=20 > >=20 > > _______________________________________________ > > freebsd-net@freebsd.org mailing = list > > http://lists.freebsd.org/mailman/listinfo/freebsd-net = > > To unsubscribe, send any mail to = "freebsd-net-unsubscribe@freebsd.org = " >=20 > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net = > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org = " >=20 >=20 From owner-freebsd-net@FreeBSD.ORG Mon May 4 17:51:24 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AF7F0F87 for ; Mon, 4 May 2015 17:51:24 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A92C1E87 for ; Mon, 4 May 2015 17:51:24 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t44HpOoN086280 for ; Mon, 4 May 2015 17:51:24 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199174] em tx and rx hang Date: Mon, 04 May 2015 17:51:24 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: ricera10@gmail.com X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 17:51:24 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199174 Eric Joyner changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ricera10@gmail.com --- Comment #12 from Eric Joyner --- Could you give the parameters that you used for the NFS mount? -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Mon May 4 19:14:39 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 887F6951 for ; Mon, 4 May 2015 19:14:39 +0000 (UTC) Received: from smtp.outgoing.loopia.se (smtp.outgoing.loopia.se [194.9.95.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 42CEF1832 for ; Mon, 4 May 2015 19:14:38 +0000 (UTC) Received: from s314.loopia.se (localhost [127.0.0.1]) by s314.loopia.se (Postfix) with ESMTP id D8CD51423AC7 for ; Mon, 4 May 2015 21:08:56 +0200 (CEST) X-Loopia-Auth: webmail X-Loopia-User: ulric@siag.nu Received: from s499.loopia.se (unknown [172.21.200.97]) by s314.loopia.se (Postfix) with ESMTP id BBDB51FFE53E; Mon, 4 May 2015 21:08:56 +0200 (CEST) Received: from s406.loopia.se (unknown [172.21.200.105]) by s499.loopia.se (Postfix) with ESMTP id B7AE4B574E6; Mon, 4 May 2015 21:08:56 +0200 (CEST) X-Virus-Scanned: amavisd-new at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.006 X-Spam-Level: X-Spam-Status: No, score=-1.006 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, AWL=-0.006] autolearn=disabled Received: from s499.loopia.se ([172.21.200.105]) by s406.loopia.se (s406.loopia.se [172.21.200.136]) (amavisd-new, port 10024) with LMTP id ybqdfFjybEB1; Mon, 4 May 2015 21:08:56 +0200 (CEST) Received: from localhost (webmail.loopia.se [194.9.95.85]) (Authenticated sender: ulric@siag.nu) by s499.loopia.se (Postfix) with ESMTPA id 1030BB5749B; Mon, 4 May 2015 21:08:56 +0200 (CEST) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 04 May 2015 21:08:56 +0200 From: ulric@siag.nu To: Barney Cordoba Cc: Luigi Rizzo , freebsd-net@freebsd.org, owner-freebsd-net@freebsd.org Subject: Re: Fwd: netmap-ipfw on em0 em1 In-Reply-To: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> References: <1009610346.1107538.1430753353703.JavaMail.yahoo@mail.yahoo.com> Message-Id: X-Sender: ulric@siag.nu User-Agent: Loopia Webmail/1.0.5 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 19:14:39 -0000 2015-05-04 17:29 skrev Barney Cordoba via freebsd-net: > It's not faster than "wedging" into the if_input()s. It simply can't > be. Your getting packets at interrupt time as soon as their processed > and  you there's no network stack involved, and your able to receive > and transmit without a process switch. At worst it's the same, without > the extra plumbing. It's not rocket science to "bypass the network > stack". > The only advantage of bringing it into user space would be that it's > easier to write threaded handlers for complex uses; but not as a > firewall (which is the limit of the context of my comment). You can do > anything in the kernel that you can do in user space. The reason a > kernel module with if_input() hooks is better is that you can use the > standard kernel without all of the netmap hacks. You can just pop it > into any kernel and it works. If my little application is N*1000 lines, the part that needs fast raw network access is N*100 lines and can get that at wirespeed with N*10 lines interfacing with Netmap, then that is IMHO an excellent proposition. I don't see how popping it into the kernel makes any sense. Ulric From owner-freebsd-net@FreeBSD.ORG Mon May 4 22:43:58 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B7801672 for ; Mon, 4 May 2015 22:43:58 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A259C1283 for ; Mon, 4 May 2015 22:43:58 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t44Mhw36028275 for ; Mon, 4 May 2015 22:43:58 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199174] em tx and rx hang Date: Mon, 04 May 2015 22:43:58 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: david.keller@litchis.fr X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 May 2015 22:43:58 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199174 --- Comment #13 from david.keller@litchis.fr --- (In reply to Eric Joyner from comment #12) Sure Eric. On server (FreeBSD 10.1): data on /data (zfs, NFS exported, local, nfsv4acls) On client (Fedora 21): X.X.X.X:/data on /media/nas type nfs4 (rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=Y.Y.Y.Y,local_lock=none,addr=X.X.X.X) -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Tue May 5 03:07:31 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2401178A for ; Tue, 5 May 2015 03:07:31 +0000 (UTC) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id F3E5E1D6F for ; Tue, 5 May 2015 03:07:30 +0000 (UTC) Received: from Julian-MBP3.local (ppp121-45-241-118.lns20.per4.internode.on.net [121.45.241.118]) (authenticated bits=0) by vps1.elischer.org (8.14.9/8.14.9) with ESMTP id t4537NSD027888 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 4 May 2015 20:07:27 -0700 (PDT) (envelope-from julian@freebsd.org) Message-ID: <554833E6.4080303@freebsd.org> Date: Tue, 05 May 2015 11:07:18 +0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Barney Cordoba , Jim Thompson CC: "freebsd-net@freebsd.org" , Luigi Rizzo Subject: Re: netmap-ipfw on em0 em1 References: <612079785.1200069.1430758431058.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: <612079785.1200069.1430758431058.JavaMail.yahoo@mail.yahoo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 03:07:31 -0000 On 5/5/15 12:53 AM, Barney Cordoba via freebsd-net wrote: > I'll assume you're just not that clear on specific implementation. Hooking directly into if_input() bypasses all of the "cruft". It basically uses the driver "as-is", so any driver can be used and it will be as good as the driver. The bloat starts in if_ethersubr.c, which is easily completely avoided. Most drivers need to be tuned (or modified a bit) as most freebsd drivers are full of bloat and forced into a bad, cookie-cutter type way of doing things. you can hook the incoming packets in if_ethersubr.c directly to the outgoing part (on another interface) using netgraph, but usually you want to do a more that just pass all packets straight through. So you need to put some processing in the middle, or why not just use a bit of cat5+ cable? > The problem with doing things in user space is that user space is unpredictable. Things work just dandily when nothing else is going on, but you can't control when a user space program gets context under heavy loads. In the kernel you can control almost exactly what the polling interval is through interrupt moderation on most modern controllers. If you have such an application you probably want to have a dedicated machine for that.. > Many otherwise credible programmers argued for years that polling was "faster", but it was only faster in artificially controlled environment. Its mainly because 1) they're not thinking about the entire context of what "can" happen, and 2) because they test under unrealistic conditions that don't represent real world events, and 3) they don't have properly tuned ethernet drivers. > BC > > > On Monday, May 4, 2015 12:37 PM, Jim Thompson wrote: > > > > While it is a true statement that, "You can do anything in the kernel that you can do in user space.”, it is not a helpful statement. Yes, the kernel is just a program. > In a similar way, “You can just pop it into any kernel and it works.” is also not helpful. It works, but it doesn’t work well, because of other infrastructure issues. > Both of your statements reduce to the age-old, “proof is left as an exercise for the student”. > > There is a lot of kernel infrastructure that is just plain crusty(*) and which directly impedes performance in this area. > > But there is plenty of cruft, Barney. Here are two threads which are three years old, with the issues it points out still unresolved, and multiple places where 100ns or more is lost: > https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033287.html > https://lists.freebsd.org/pipermail/freebsd-current/2012-April/033351.html > > 100ns is death at 10Gbps with min-sized packets. > > quoting: http://luca.ntop.org/10g.pdf > --- > Taking as a reference a 10 Gbit/s link, the raw throughput is well below the memory bandwidth of modern systems (between 6 and 8 GBytes/s for CPU to memory, up to 5 GBytes/s on PCI-Express x16). How- ever a 10Gbit/s link can generate up to 14.88 million Packets Per Second (pps), which means that the system must be able to process one packet every 67.2 ns. This translates to about 200 clock cycles even for the faster CPUs, and might be a challenge considering the per- packet overheads normally involved by general-purpose operating systems. The use of large frames reduces the pps rate by a factor of 20..50, which is great on end hosts only concerned in bulk data transfer. Monitoring systems and traffic generators, however, must be able to deal with worst case conditions.” > > Forwarding and filtering must also be able to deal with worst case, and nobody does well with kernel-based networking here. https://github.com/gvnn3/netperf/blob/master/Documentation/Papers/ABSDCon2015Paper.pdf > > 10Gbps NICs are $200-$300 today, and they’ll be included on the motherboard during the next hardware refresh. Broadwell-DE (Xeon-D) has 10G in the SoC, and others are coming. > 10Gbps switches can be had at around $100/port. This is exactly the point at which the adoption curve for 1Gbps Ethernet ramped over a decade ago. > > > (*) A few more simple examples of cruft: > > Why, in 2015 does the kernel have a ‘fast forwarding’ option, and worse, one that isn’t enabled by default? Shouldn’t “fast forwarding" be the default? > > Why, in 2015, does FreeBSD not ship with IPSEC enabled in GENERIC? (Reason: each and every time this has come up in recent memory, someone has pointed out that it impacts performance. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=128030) > > Why, in 2015, does anyone think it’s acceptable for “fast forwarding” to break IPSEC? > > Why, in 2015, does anyone think it’s acceptable that the setkey(8) man page documents, of all things, DES-CBC and HMAC-MD5 for a SA? That’s some kind of sick joke, right? > This completely flies in the face of RFC 4835. Jim, and Barney. I hate to sound like a broken record, but we really need interested people in the network stack. The people who make the decisions about this are the people who stand up and say "I have a few hours I can spend on this". If you were to do so too, then really, all these issues could be worked on. get in there and help rather than standing on the bleachers and offering advise. There is no person working against you here. From my counting the current active networking crew is about 10 people. with another 10 doing drivers. You would have a lot of sway in a group that small. but you have th be in it first, and the way to do that is to simple start doing stuff. no-one was ever sent an invitation. They just turned up. > > >> On May 4, 2015, at 10:29 AM, Barney Cordoba via freebsd-net wrote: >> >> It's not faster than "wedging" into the if_input()s. It simply can't be. Your getting packets at interrupt time as soon as their processed and you there's no network stack involved, and your able to receive and transmit without a process switch. At worst it's the same, without the extra plumbing. It's not rocket science to "bypass the network stack". >> The only advantage of bringing it into user space would be that it's easier to write threaded handlers for complex uses; but not as a firewall (which is the limit of the context of my comment). You can do anything in the kernel that you can do in user space. The reason a kernel module with if_input() hooks is better is that you can use the standard kernel without all of the netmap hacks. You can just pop it into any kernel and it works. >> BC >> >> >> On Sunday, May 3, 2015 2:13 PM, Luigi Rizzo wrote: >> >> >> On Sun, May 3, 2015 at 6:17 PM, Barney Cordoba via freebsd-net < >> freebsd-net@freebsd.org> wrote: >> >>> Frankly I'm baffled by netmap. You can easily write a loadable kernel >>> module that moves packets from 1 interface to another and hook in the >>> firewall; why would you want to bring them up into user space? It's 1000s >>> of lines of unnecessary code. >>> >>> >> Because it is much faster. >> >> The motivation for netmap-like >> solutions (that includes Intel's DPDK, PF_RING/DNA >> and several proprietary implementations) is speed: >> they bypass the entire network stack, and a >> good part of the device drivers, so you can access >> packets >> >> 10+ times faster. >> So things are actually the other way around: >> the 1000's of unnecessary >> lines of code >> (not really thousands, though) >> are >> those that you'd pay going through the standard >> network stack >> when you >> don't need any of its services. >> >> Going to userspace is just a side effect -- turns out to >> be easier to develop and run your packet processing code >> in userspace, but there are netmap clients (e.g. the >> VALE software switch) which run entirely in the kernel. >> >> cheers >> luigi >> >> >> >>> >>> On Sunday, May 3, 2015 3:10 AM, Raimundo Santos >>> wrote: >>> >>> >>> Clarifying things for the sake of documentation: >>> >>> To use the host stack, append a ^ character after the name of the interface >>> you want to use. (Info from netmap(4) shipped with FreeBSD 10.1 RELEASE.) >>> >>> Examples: >>> >>> "kipfw em0" does nothing useful. >>> "kipfw netmap:em0" disconnects the NIC from the usual data path, i.e., >>> there are no host communications. >>> "kipfw netmap:em0 netmap:em0^" or "kipfw netmap:em0+" places the >>> netmap-ipfw rules between the NIC and the host stack entry point associated >>> (the IP addresses configured on it with ifconfig, ARP and RARP, etc...) >>> with the same NIC. >>> >>> On 10 November 2014 at 18:29, Evandro Nunes >>> wrote: >>> >>>> dear professor luigi, >>>> i have some numbers, I am filtering 773Kpps with kipfw using 60% of CPU >>> and >>>> system using the rest, this system is a 8core at 2.4Ghz, but only one >>> core >>>> is in use >>>> in this next round of tests, my NIC is now an avoton with igb(4) driver, >>>> currently with 4 queues per NIC (total 8 queues for kipfw bridge) >>>> i have read in your papers we should expect something similar to 1.48Mpps >>>> how can I benefit from the other CPUs which are completely idle? I tried >>>> CPU Affinity (cpuset) kipfw but system CPU usage follows userland kipfw >>> so >>>> I could not set one CPU to userland while other for system >>>> >>> All the papers talk about *generating* lots of packets, not *processing* >>> lots of packets. What this netmap example does is processing. If someone >>> really wants to use the host stack, the expected performance WILL BE worse >>> - what's the point of using a host stack bypassing tool/framework if >>> someone will end up using the host stack? >>> >>> And by generating, usually the papers means: minimum sized UDP packets. >>> >>> >>>> can you please enlighten? >>>> >>> For everyone: read the manuals, read related and indicated materials >>> (papers, web sites, etc), and, as a least resource, read the code. Within >>> netmap's codes, it's more easy than it sounds. >>> _______________________________________________ >>> freebsd-net@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-net >>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >>> >>> >>> >>> _______________________________________________ >>> freebsd-net@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-net >>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >>> >> >> >> -- >> -----------------------------------------+------------------------------- >> Prof. Luigi RIZZO, rizzo@iet.unipi.it . Dip. di Ing. dell'Informazione >> http://www.iet.unipi.it/~luigi/ . Universita` di Pisa >> TEL +39-050-2217533 . via Diotisalvi 2 >> Mobile +39-338-6809875 . 56122 PISA (Italy) >> -----------------------------------------+------------------------------- >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >> >> >> >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > From owner-freebsd-net@FreeBSD.ORG Tue May 5 03:55:33 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 704F11B7 for ; Tue, 5 May 2015 03:55:33 +0000 (UTC) Received: from mail-ob0-f179.google.com (mail-ob0-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3788E120C for ; Tue, 5 May 2015 03:55:33 +0000 (UTC) Received: by obfe9 with SMTP id e9so121455745obf.1 for ; Mon, 04 May 2015 20:55:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=YwSAwPynmEzcG1ukBknE5R5/6uB+oFuBFOMpwdd2QJE=; b=Ql0U91SrRa8/NAYf7YJoAWQwyt18AuFcj53ItCascvxxKKn5vUr7NKAj7SPf5iqP3Y nsbopxuCewuuEWbZcQFMm4/TnW5apN+8zVLqkg3nTUp9ur/8Lj3/RuoNjTSqjdVm7Kjz smOmCd6Bq2TgTgtFv0yFrrmNB8Zwub6urrtKaCnn+VZl/aL1c3DKun/dAWxBcKjBBkeb pl8tR40e2QJ9ajHOj4aUq1odVzdSpmgTuIQs0kmdEMON0mSRjehf94/4+AuFYsgxhqCN YOcGSDT/7PokriM4Hc/ub0C3sKCICmWeEDFhTBzTT/7Bx3LwHIckndYEV4VKl3tKrlDE DR3w== X-Gm-Message-State: ALoCoQkLE2vcnZoshPdHa4xMcYX6MdrQIAiHqaT9UkQyou2CD8mpieLxl8yYxTWdwTi0iA4VaCX6 X-Received: by 10.60.148.225 with SMTP id tv1mr15034672oeb.14.1430798126705; Mon, 04 May 2015 20:55:26 -0700 (PDT) Received: from jims-mbp.netgate.com (65-36-83-120.static.grandenetworks.net. [65.36.83.120]) by mx.google.com with ESMTPSA id w72sm8954733oie.28.2015.05.04.20.55.25 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 04 May 2015 20:55:26 -0700 (PDT) Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) Subject: Re: netmap-ipfw on em0 em1 From: Jim Thompson In-Reply-To: <554833E6.4080303@freebsd.org> Date: Mon, 4 May 2015 22:55:25 -0500 Cc: Barney Cordoba , "freebsd-net@freebsd.org" , Luigi Rizzo Message-Id: <8612DCBA-43BB-498D-97EA-31F3E25F93C8@netgate.com> References: <612079785.1200069.1430758431058.JavaMail.yahoo@mail.yahoo.com> <554833E6.4080303@freebsd.org> To: Julian Elischer X-Mailer: Apple Mail (2.2098) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 03:55:33 -0000 > On May 4, 2015, at 10:07 PM, Julian Elischer = wrote: >=20 > Jim, and Barney. I hate to sound like a broken record, but we really = need interested people in the network stack. > The people who make the decisions about this are the people who stand = up and say "I have a few hours I can spend on this". > If you were to do so too, then really, all these issues could be = worked on. get in there and help rather than standing on the bleachers = and offering advise. >=20 > There is no person working against you here. >=20 > =46rom my counting the current active networking crew is about 10 = people. with another 10 doing drivers. > You would have a lot of sway in a group that small. but you have th be = in it first, and the way to do that is to simple start doing stuff. = no-one was ever sent an invitation. They just turned up. I am (and we are) interested. I=E2=80=99m a bit short on time, and I = have a project/product (pfSense) to maintain, so I keep other people = busy on the stack. Examples include: We co-sponsored the AES-GCM work. Unfortunately, the process stopped = before the IPsec work to leverage this we did made it upstream. As partial remedy, gnn is currently evaluating all the patches from = pfSense for inclusion into the FreeBSD mainline. I was involved in the work to replace the hash function used in pf. = This is (only) min 3% gain, more if you carry large state tables. There was a paper presented at AsiaBSDcon, so at least we have a = methodology to speak about performance increases. (Is the methodology = in the paper perfect? No. But at least it=E2=80=99s a stake in the = ground.) We=E2=80=99re currently working with Intel to bring support for = QuickAssist to FreeBSD. (Linux has it.) While that=E2=80=99s not = =E2=80=98networking=E2=80=99 per-se, the larger consumers for the = technology are various components in the stack. The other flaws I pointed out are on the list of things for us to work = on / fix. Someone might get there first, but =E2=80=A6 that=E2=80=99s = good. I only care about getting things fixed. Jim p.s. yes, I'm working on a commit bit. From owner-freebsd-net@FreeBSD.ORG Tue May 5 12:44:27 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 33F8910F for ; Tue, 5 May 2015 12:44:27 +0000 (UTC) Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C35311D6B for ; Tue, 5 May 2015 12:44:26 +0000 (UTC) Received: by widdi4 with SMTP id di4so159057399wid.0 for ; Tue, 05 May 2015 05:44:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:content-type; bh=K5JCi0e8BiTrHaKjDjvy4MzNbno5Q/GTYsFHXNh5L+k=; b=lx+Se5UvHGTB96SgWbw7zS1/6uhaMCGJiz+qBv1B6Ir+Zhn0as62wlFmKMLTJwEPPG Qn1tuXj//Epkui1t5CwsC21MGKUbj77CzF1K41gt1pXmafZiKvcuujHVVoUZ4kjTi4VN ZNOpeIDaCUds1dkgsIdYiamIBd0TWopFS9ULo7LChufRLgQMQBOhY8LdlPr+B644QFVw 3g1TMjVPMVRVKZzMvcLwtjATxrqHNSxjuO3VgjgdiMLTYuoE9UQbNFlHqdjMd9gy6kZs EU2xySMxuQkiay8LQmC3nZjGixb2pPzlHI8VIxLmRi48Oe4bKfQH0mrWtrDD/HvwqzWS N4IQ== X-Gm-Message-State: ALoCoQnEi9RP87mijMBoEhBMPhCZfm9B0fScjre6+M37L88dm33/5dsr8CZkrpVDfpbbxOGa7G3G X-Received: by 10.194.86.101 with SMTP id o5mr52130446wjz.8.1430829864711; Tue, 05 May 2015 05:44:24 -0700 (PDT) Received: from fri2jcharbon-m1.vcorp.ad.vrsn.com ([217.30.88.7]) by mx.google.com with ESMTPSA id q4sm25421800wja.24.2015.05.05.05.44.23 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 May 2015 05:44:24 -0700 (PDT) Message-ID: <5548BB20.2020700@freebsd.org> Date: Tue, 05 May 2015 14:44:16 +0200 From: Julien Charbon User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: freebsd-net@freebsd.org CC: John Baldwin Subject: MFC-ing Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="1row9mVeHLQaF67mn5k6tPBwtIQlsHrJV" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 12:44:27 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --1row9mVeHLQaF67mn5k6tPBwtIQlsHrJV Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi list, I was asked if it is possible to MFC r281599 in FreeBSD 10: --- Fix an old and well-documented use-after-free race condition in TCP timers: - Add a reference from tcpcb to its inpcb - Defer tcpcb deletion until TCP timers have finished --- https://svnweb.freebsd.org/base?view=3Drevision&revision=3D281599 First, I thought it was no possible as it touches struct tcp_timer/struct tcpcb_mem. Second, John pointed me that these two structures are used only internally. The only side effect I was able to find is the increase of struct tcpcb_mem size: - stable/10: struct tcpcb_mem size is 1024 bytes - stable/10 + tcp timer change: struct tcpcb_mem size is 1032 bytes - currently in head: struct tcpcb_mem size is 1048 bytes If you have extra concerns on MFC-ing this change please scream. Without nice yelps I plan to "MFC after: 1 month" (around May 16th). Thanks. -- Julien --1row9mVeHLQaF67mn5k6tPBwtIQlsHrJV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJVSLsnAAoJEKVlQ5Je6dhx5ecIAJY06figfPivHZJ5Waugmqs4 IzBfWprlSceunaVnIKBChd76TpYtvqsKkweUQZn9EUhxIqHovIgVnIB2c8W/XPWs 78JiPBFH5jGYkSAR7/ekyFkDmEOR5gAcGqwtH2DgcIzUbTmIHBNjADrSnhmAow26 HjglhFBJUuRmubGTNKpDJld36D1+Yb8/GpqJcgsfgyPObhnlIcl/x4x7i6Yw0xp4 IVtqBPBDwV7172ZBpxjlyNtfw5y2gGx3+nRWZXjz4SL4oQxQuIYg8Tx4QL+rvtV6 SgoEiCrpKzk27iiZUoXVMOE/XQnF5nVxFGZwKJ7wkvJh69GshrDRCFznRV/A4DE= =ZRUX -----END PGP SIGNATURE----- --1row9mVeHLQaF67mn5k6tPBwtIQlsHrJV-- From owner-freebsd-net@FreeBSD.ORG Tue May 5 14:52:12 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4896A29C for ; Tue, 5 May 2015 14:52:12 +0000 (UTC) Received: from nm1-vm2.bullet.mail.ne1.yahoo.com (nm1-vm2.bullet.mail.ne1.yahoo.com [98.138.91.17]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1308F1D81 for ; Tue, 5 May 2015 14:52:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1430837176; bh=mtEzkecF3xNscLPnPNi7ESDrS7fuvaJcfpUpVOrakcI=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject; b=obYACstQ/4wGdYY+BU/dI8Tc8o70mUp3gRtsD5RNhfQDlW7dDAB3Ct2fMbsLB4n/asN2uBDBhb/9DUJvTa4KQ00dEBAH9czuY62PMKofu8lPdpoKmlJJJky1XBaP5Lno6W5Zd3hd83BKmRK3vARJsW9AM2TlHZu5IhPGW/RRqhOj2DpB0J65FJ6+ohpXovTWcccdUWcC3aLCBqvo+iESZLQDkZFfRl0MbdVlCQ7d74yvCZgRTieNwBeyVymMHh/fW5U7ero+LebNPUtf6q6Dpx5X1UBo1UieQYwhtvDG9LPXzlDE5aDHb5Un0LYeyCPhkKeGvVzwgymklLHPZdPvLg== Received: from [98.138.101.131] by nm1.bullet.mail.ne1.yahoo.com with NNFMP; 05 May 2015 14:46:16 -0000 Received: from [98.138.89.233] by tm19.bullet.mail.ne1.yahoo.com with NNFMP; 05 May 2015 14:46:16 -0000 Received: from [127.0.0.1] by omp1048.mail.ne1.yahoo.com with NNFMP; 05 May 2015 14:46:16 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 539508.89970.bm@omp1048.mail.ne1.yahoo.com X-YMail-OSG: JmhBPTUVM1muga3r3nda3UkiP02mTsz8CCQkc9z6gS6KHFlTEmcySbI8lUWz4sa 8QJPUkRBbx4D6FjKaeZCOidlKol0aU.xe3M8tfsahYLF1hzHEXCUrfK5WXlq49mbXCO0ABg4VyQn 3dTfz3MoJ4x_jIY3fJWpK1XBHYXwaHSuv28inTbTPID3Fs_4XvpRH6Y1RzcgzCQDhAtCbjkxr.kn cSK1FbFqOr4t_pGkOlb4WhMlIT_HsHc9VrtzEexYJ8nL1xrwQPxdqt9Yjp0S6lxmS2V3BFBl6Dva seD8_nPVipjGfoPTDjWxHzz8ue3xh_PPzORTuHzlaRld9Y08wYYFBBTWHlb55PtK3dS6pKRXaZr2 v_ReRz5gqAiDqxCY9qni91fDc1M7HswMEW5vTsjVT6OKocC9kHFKH05a36CkXG3qhrCdBw6GZ0Ya FkVPP_Pu7.QNCIttyeCSG57ptjj0eXezjpgMtEY9Lsuqv9TDF00iSrXFZo6v_ty_orAwewYeDD0v 8U2jubtLMSwh37Xyqow-- Received: by 98.138.101.183; Tue, 05 May 2015 14:46:16 +0000 Date: Tue, 5 May 2015 14:46:14 +0000 (UTC) From: Barney Cordoba Reply-To: Barney Cordoba To: Jim Thompson , Julian Elischer Cc: Luigi Rizzo , "freebsd-net@freebsd.org" Message-ID: <1441324756.337558.1430837174176.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: <8612DCBA-43BB-498D-97EA-31F3E25F93C8@netgate.com> References: <8612DCBA-43BB-498D-97EA-31F3E25F93C8@netgate.com> Subject: Re: netmap-ipfw on em0 em1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 14:52:12 -0000 Are you NOT SHARP ENOUGH to understand that my proposal DOESN'T USE THE NET= WORK STACK? OMFG Julien, perhaps if people weren't so hostile towards commercial companies p= roviding ideas for alternative ways of doing things you'd get more input an= d more help. Why would I want to help these people? BC=20 On Monday, May 4, 2015 11:55 PM, Jim Thompson wrote: =20 =20 > On May 4, 2015, at 10:07 PM, Julian Elischer wrote: >=20 > Jim, and Barney. I hate to sound like a broken record, but we really need= interested people in the network stack. > The people who make the decisions about this are the people who stand up = and say "I have a=C2=A0 few hours I can spend on this". > If you were to do so too, then really, all these issues could be worked o= n. get in there and help rather than standing on the bleachers and offering= advise. >=20 > There is no person working against you here. >=20 > From my counting the current active networking crew is about 10 people. w= ith another 10 doing drivers. > You would have a lot of sway in a group that small. but you have th be in= it first, and the way to do that is to simple start doing stuff.=C2=A0 no-= one was ever sent an invitation. They just turned up. I am (and we are) interested.=C2=A0 I=E2=80=99m a bit short on time, and I = have a project/product (pfSense) to maintain, so I keep other people busy o= n the stack. Examples include: We co-sponsored the AES-GCM work.=C2=A0 Unfortunately, the process stopped = before the IPsec work to leverage this we did made it upstream. As partial remedy, gnn is currently evaluating all the patches from pfSense= for inclusion into the FreeBSD mainline. I was involved in the work to replace the hash function used in pf.=C2=A0 T= his is (only) min 3% gain, more if you carry large state tables. There was a paper presented at AsiaBSDcon, so at least we have a methodolog= y to speak about performance increases.=C2=A0 (Is the methodology in the pa= per perfect?=C2=A0 No.=C2=A0 But at least it=E2=80=99s a stake in the groun= d.) We=E2=80=99re currently working with Intel to bring support for QuickAssist= to FreeBSD.=C2=A0 (Linux has it.)=C2=A0 While that=E2=80=99s not =E2=80=98= networking=E2=80=99 per-se, the larger consumers for the technology are various components in the stack. The other flaws I pointed out are on the list of things for us to work on /= fix.=C2=A0 Someone might get there first, but =E2=80=A6 that=E2=80=99s goo= d.=C2=A0 I only care about getting things fixed. Jim p.s.=C2=A0 yes, I'm working on a commit bit. _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Tue May 5 16:15:30 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 483CA46A for ; Tue, 5 May 2015 16:15:30 +0000 (UTC) Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D8EAD1726 for ; Tue, 5 May 2015 16:15:29 +0000 (UTC) Received: by wgyo15 with SMTP id o15so189060657wgy.2 for ; Tue, 05 May 2015 09:15:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type; bh=omVlONadc8QXTRJo2gABPbjoNuXdyS4PezNvVlij5G4=; b=K+3kHus1m25Wg/7kEXSYg8RdGHvGJ130QNEOXLImBv1Hgo0M7sYTy3LEuybBkmSems K/YWBkQdJY112ZU41qdI2C5HGD9DgQYH0FKXiZrE0rxgqag8KeTCLXPIIBhz5MFMiIMb STBmeMeckU8Q52hlA66fsH+AgTVwWjwgZw8hKNVRw53XuNviAPcYIBSIYT3t1Zc1GvSv Lxy3Sqi9RjOpFv00nf0+15x7yOwpiOq3z/qsOnJu9lS0x7rB/v7ljZYxGc3a0PahkqpU f0bPa6yVzio6g1Hg5Yd+nZCe1X/X6VhEDnvZIVVHiTObcr7Qy7bGyQltvi8dYws+pMJm K3/g== X-Gm-Message-State: ALoCoQlbhT3nAfflfQKItQwikanxCQVXB0oa0i9XZOyX33Ux8C1x51IjcCnJpgopZ9j8nv/uGK/B X-Received: by 10.180.94.168 with SMTP id dd8mr5422597wib.76.1430842522586; Tue, 05 May 2015 09:15:22 -0700 (PDT) Received: from FRI2JCHARBON-M1.local ([217.30.88.7]) by mx.google.com with ESMTPSA id n1sm16872166wix.0.2015.05.05.09.15.21 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 May 2015 09:15:21 -0700 (PDT) Message-ID: <5548EC8F.3010103@freebsd.org> Date: Tue, 05 May 2015 18:15:11 +0200 From: Julien Charbon User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: freebsd-net@freebsd.org Subject: MFC-ing TCP timer race condition fix References: <5548BB20.2020700@freebsd.org> In-Reply-To: <5548BB20.2020700@freebsd.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="mKJSu7EeUI1qCETulT89BN0lwXOD3vGGi" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 16:15:30 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --mKJSu7EeUI1qCETulT89BN0lwXOD3vGGi Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable (Same exact email but with a meaningful topic this time...) Hi list, I was asked if it is possible to MFC r281599 in FreeBSD 10: --- Fix an old and well-documented use-after-free race condition in TCP timers: - Add a reference from tcpcb to its inpcb - Defer tcpcb deletion until TCP timers have finished --- https://svnweb.freebsd.org/base?view=3Drevision&revision=3D281599 First, I thought it was no possible as it touches struct tcp_timer/struct tcpcb_mem. Second, John pointed me that these two structures are used only internally. The only side effect I was able to find is the increase of struct tcpcb_mem size: - stable/10: struct tcpcb_mem size is 1024 bytes - stable/10 + tcp timer change: struct tcpcb_mem size is 1032 bytes - currently in head: struct tcpcb_mem size is 1048 bytes If you have extra concerns on MFC-ing this change please scream. Without nice yelps I plan to "MFC after: 1 month" (around May 16th). Thanks. -- Julien --mKJSu7EeUI1qCETulT89BN0lwXOD3vGGi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJVSOyXAAoJEKVlQ5Je6dhx6csIALL2XgySXOU+bPZOlIJRi+2B 1cVMV9615HcSY9vc/s3mqKcuo6uW1GGGk3Q6AKorIqzjmVscanizPA3frcWG4kqt G91kY6TxR1ivmAleCpMhjoVx5Y63qec+EBXIqd9fMIsIO+7iyELpShVBnJQO4RpC 7JvGN3e7MYadisrMQWmHfGKLABxzGKsC+RzHePvV4KAsQbgKk+e5ET+dIVXFTxNN YfgCmpefuCFgsvN5Wot2lw0yDIxrpSllntQw3fg8mKaPiBeiggUXl2h5kqEitrCG Qrin+8N0aod2ytd50D3TlOhk1gYmjL3Gip37cwhpnmjewaxh86XLbPO+o/PbMGM= =xONa -----END PGP SIGNATURE----- --mKJSu7EeUI1qCETulT89BN0lwXOD3vGGi-- From owner-freebsd-net@FreeBSD.ORG Wed May 6 04:47:32 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 17FF7551 for ; Wed, 6 May 2015 04:47:32 +0000 (UTC) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id E89721CB5 for ; Wed, 6 May 2015 04:47:31 +0000 (UTC) Received: from Julian-MBP3.local (ppp121-45-241-118.lns20.per4.internode.on.net [121.45.241.118]) (authenticated bits=0) by vps1.elischer.org (8.14.9/8.14.9) with ESMTP id t464lNw4041432 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 5 May 2015 21:47:27 -0700 (PDT) (envelope-from julian@freebsd.org) Message-ID: <55499CD5.8000003@freebsd.org> Date: Wed, 06 May 2015 12:47:17 +0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: Barney Cordoba , Jim Thompson CC: Luigi Rizzo , "freebsd-net@freebsd.org" Subject: Re: netmap-ipfw on em0 em1 References: <8612DCBA-43BB-498D-97EA-31F3E25F93C8@netgate.com> <1441324756.337558.1430837174176.JavaMail.yahoo@mail.yahoo.com> In-Reply-To: <1441324756.337558.1430837174176.JavaMail.yahoo@mail.yahoo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 04:47:32 -0000 On 5/5/15 10:46 PM, Barney Cordoba wrote: > Are you NOT SHARP ENOUGH to understand that my proposal DOESN'T USE > THE NETWORK STACK? OMFG Barney, your proposal is that we provide a framework to allow network IP stack bypass in the case of special processing. that framework still needs to be hooked into the system and IS STILL PART OF THE NETWORKING STACK, lying between the driver layer and the protocol layer. In this space we already have a whole bunch of "intercept" hooks. (bpf, netgraph, filters, bridging, vlans, even netmap (which can be used from within the kernel as well as from external to it.) if you really want to be productive, figure out what you need, how it fits in with what is already there, (maybe it can USE what's already there), and give us some design sketches. We are not going to do it for you, we have our own fires to quench and itches to scratch. I have a full time job doing "other stuff" right now. We WILL however happily discuss your designs and suggestions with you when they are more concrete than "hey I like apple pie". Work up a simple proof-of concept.. it's not that hard.. I had netgraph proofed up in about a day.. We all know we need work in this space. having you tell us that again doesn't give us more free time. but YOU obviously have some time We welcome your interest and hope to profit by your obvious expertise in this area. I'm not being aggressive. I'm just hoping to get some free labour out of you :-) > > Julien, perhaps if people weren't so hostile towards commercial > companies providing ideas for alternative ways of doing things you'd > get more input and more help. Why would I want to help these people? BTW since I'm not French my name is Julian. And I am not being hostile. I'm just saying what the facts are.. Yes work needs to be done. yes there are too few people to do it.. But please don't make suggestions and just expect that everyone will put down their picks and be so overawed by the total amazingness of your suggestions that they all rush to do it for you. Things I have done (often with others) have been because I thought they need to be done.. They were also things that I needed. Bios based bootblocks 1992, scsi system 1993, devfs 1994 netgraph 1996, divert 1995 threads 1999-2002 scheduler fixes 2004? USB fixes 2003 multiple fibs 2007 vimage 2010+ (ish) .. (then kids, work , work, etc.) (and others I forgot). none of these things were done because an amazing genius suggested it and then went away. > . > BC J > > > > On Monday, May 4, 2015 11:55 PM, Jim Thompson wrote: > > > > > On May 4, 2015, at 10:07 PM, Julian Elischer > wrote: > > > > Jim, and Barney. I hate to sound like a broken record, but we > really need interested people in the network stack. > > The people who make the decisions about this are the people who > stand up and say "I have a few hours I can spend on this". > > If you were to do so too, then really, all these issues could be > worked on. get in there and help rather than standing on the > bleachers and offering advise. > > > > There is no person working against you here. > > > > From my counting the current active networking crew is about 10 > people. with another 10 doing drivers. > > You would have a lot of sway in a group that small. but you have > th be in it first, and the way to do that is to simple start doing > stuff. no-one was ever sent an invitation. They just turned up. > > > I am (and we are) interested. I’m a bit short on time, and I have a > project/product (pfSense) to maintain, so I keep other people busy > on the stack. > > Examples include: > > We co-sponsored the AES-GCM work. Unfortunately, the process > stopped before the IPsec work to leverage this we did made it upstream. > As partial remedy, gnn is currently evaluating all the patches from > pfSense for inclusion into the FreeBSD mainline. > > I was involved in the work to replace the hash function used in pf. > This is (only) min 3% gain, more if you carry large state tables. > > There was a paper presented at AsiaBSDcon, so at least we have a > methodology to speak about performance increases. (Is the > methodology in the paper perfect? No. But at least it’s a stake in > the ground.) > > We’re currently working with Intel to bring support for QuickAssist > to FreeBSD. (Linux has it.) While that’s not ‘networking’ per-se, > the larger consumers for the technology > are various components in the stack. > > The other flaws I pointed out are on the list of things for us to > work on / fix. Someone might get there first, but … that’s good. I > only care about getting things fixed. > > Jim > p.s. yes, I'm working on a commit bit. > > > > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to > "freebsd-net-unsubscribe@freebsd.org > " > > From owner-freebsd-net@FreeBSD.ORG Wed May 6 06:10:39 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 13CCDAF8 for ; Wed, 6 May 2015 06:10:39 +0000 (UTC) Received: from phlegethon.blisses.org (phlegethon.blisses.org [50.56.97.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EC5A51506 for ; Wed, 6 May 2015 06:10:37 +0000 (UTC) Received: from blisses.org (cocytus.blisses.org [23.25.209.73]) by phlegethon.blisses.org (Postfix) with ESMTPSA id 3B3D6149090 for ; Wed, 6 May 2015 02:10:31 -0400 (EDT) Date: Wed, 6 May 2015 02:10:29 -0400 From: Mason Loring Bliss To: freebsd-net@freebsd.org Subject: IPsec on a LAN? Message-ID: <20150506061029.GG4033@blisses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 06:10:39 -0000 Hi there! I'm trying to find a resource for learning how to go about setting up IPsec on an IPv4 LAN. The Handbook and just about every resources I can find on the 'net talks about using IPsec to tunnel to another site, but I just want my local boxes (or some subset of them) to encrypt traffic to each other. My specific desire is to set up NFS between several local machines and have it use an encrypted transport. It seems that IPsec is the only game in town, and that it's very poorly documented, especially for use on a LAN as opposed to for setting up a VPN between sites. I'd love pointers. Thank you! -- Mason Loring Bliss mason@blisses.org Ewige Blumenkraft! awake ? sleep : random() & 2 ? dream : sleep; -- Hamlet, Act III, Scene I From owner-freebsd-net@FreeBSD.ORG Wed May 6 06:29:08 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 63F46D2E for ; Wed, 6 May 2015 06:29:08 +0000 (UTC) Received: from mail-oi0-f42.google.com (mail-oi0-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2ECA916FD for ; Wed, 6 May 2015 06:29:07 +0000 (UTC) Received: by oign205 with SMTP id n205so258832oig.2 for ; Tue, 05 May 2015 23:29:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=RlPB7p+cdLuE6byWMMFjPPHzdFSR2O8jI8l9YX4fJzQ=; b=mV5Si8jE/EdmUs+tqMPk9fnHxtRQGBwVJG4YSW96GrgDVTOiFJkqKxzdjzATzPxksT Ff7GU15ndKuYBGufLHSFLaGo2CCeyOm4N+VBYVWvXN7UMEPPmSgeGMEG6BnneI+GizfW j7eibIdvZO0uhSEDa0TVE0C/ABFo2MPmq8/ZUopwojQy4LPEV53ZVumikbr+GlcRvM1l RxuufpvIaB83HXq1Zec0KaryRrhd773r348EuXxST/mfBc4q/ze3+PuphrzKQkGMzKU0 EIwl5Wmp25Eo22IvyxL+B4csPGRpFZKQyjgrKQXN1fKqkRDeXpK6M1KxE1PXVNhZIy9H LJ2A== X-Gm-Message-State: ALoCoQlyOa9XbsLHkK1UTPKzzr3QbF+5itxo0nCv7zmieJQZNJKxFTbQz7fBIvzbAB/SD2iRzGCW X-Received: by 10.60.92.73 with SMTP id ck9mr25221179oeb.60.1430893740849; Tue, 05 May 2015 23:29:00 -0700 (PDT) Received: from jims-mbp.netgate.com (65-36-83-120.static.grandenetworks.net. [65.36.83.120]) by mx.google.com with ESMTPSA id v15sm493325oif.10.2015.05.05.23.29.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 05 May 2015 23:29:00 -0700 (PDT) Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\)) Subject: Re: IPsec on a LAN? From: Jim Thompson In-Reply-To: <20150506061029.GG4033@blisses.org> Date: Wed, 6 May 2015 01:28:59 -0500 Cc: freebsd-net@freebsd.org Message-Id: <7D6A77D9-9EFE-471D-97BA-E1D854AE23B1@netgate.com> References: <20150506061029.GG4033@blisses.org> To: Mason Loring Bliss X-Mailer: Apple Mail (2.2098) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 06:29:08 -0000 What you=E2=80=99re looking for is =E2=80=9Ctransport mode=E2=80=9D = IPsec. Dan Langille wrote this 14 years ago, it may still be accurate. http://www.freebsddiary.org/ipsec.php = This is a bit more recent (14 months ago), and should be easy to adapt = to two FreeBSD hosts: http://www.schmidp.com/2014/01/20/ipsec-between-freebsd-and-mac-osx/ Jim > On May 6, 2015, at 1:10 AM, Mason Loring Bliss = wrote: >=20 > Hi there! >=20 > I'm trying to find a resource for learning how to go about setting up = IPsec > on an IPv4 LAN. The Handbook and just about every resources I can find = on the > 'net talks about using IPsec to tunnel to another site, but I just = want my > local boxes (or some subset of them) to encrypt traffic to each other. >=20 > My specific desire is to set up NFS between several local machines and = have > it use an encrypted transport. It seems that IPsec is the only game in = town, > and that it's very poorly documented, especially for use on a LAN as = opposed > to for setting up a VPN between sites. I'd love pointers. >=20 > Thank you! >=20 > --=20 > Mason Loring Bliss mason@blisses.org Ewige = Blumenkraft! > awake ? sleep : random() & 2 ? dream : sleep; -- Hamlet, Act III, = Scene I > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" From owner-freebsd-net@FreeBSD.ORG Wed May 6 09:35:23 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BB93CF5F; Wed, 6 May 2015 09:35:23 +0000 (UTC) Received: from mail-pd0-x22a.google.com (mail-pd0-x22a.google.com [IPv6:2607:f8b0:400e:c02::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8F3E91B45; Wed, 6 May 2015 09:35:23 +0000 (UTC) Received: by pdbnk13 with SMTP id nk13so4636795pdb.0; Wed, 06 May 2015 02:35:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=aUodLRjVE+ZmyUK4cW6KEmXo1u6IjUpp9CDdPC0OiOM=; b=GQOIE0E7OGT0/b7Gnv1lqLB4BapC4gW79crmr60Puq3HEpeJR+NvhkVEFCgCJAqX8f 4m38w/izrAL3pXvNQ5y6obfU9N9+AXInE+40bhO4FTqF880h5acRiDABSgs0Sr+abqCV /AYcFZOaBspOynwhZEfo5NDTqaOclHAH/Q/pdl4icixTybxaQlmgu1Za9jnO2i5Jir02 v1v+oZMJ89Irg00C3Q7MvZWuW8uSdW4d/wMz54LetPW70HRHabSOoQ7qOWU3UfJZvv/6 GzUFaKvEE1Dvm3BDEdEr/AfyW+LaXVPL1ci6AAh1fvrgoF2uCw1Xju/C35ylg2qjkEXN CytA== X-Received: by 10.68.116.132 with SMTP id jw4mr56763320pbb.107.1430904923087; Wed, 06 May 2015 02:35:23 -0700 (PDT) MIME-Version: 1.0 Sender: cochard@gmail.com Received: by 10.70.38.133 with HTTP; Wed, 6 May 2015 02:35:02 -0700 (PDT) From: =?UTF-8?Q?Olivier_Cochard=2DLabb=C3=A9?= Date: Wed, 6 May 2015 11:35:02 +0200 X-Google-Sender-Auth: cLUKy63tJ9KTKqf-F_U_oMUG1kM Message-ID: Subject: No multicast routing support on Virtio vtnet(4) drivers ? To: "freebsd-net@freebsd.org" , "freebsd-virtualization@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 09:35:23 -0000 I'm trying to set-up a multicast network lab using bhyve (then the vtnet interfaces). But when starting a PIM multicast routing daemon, I've got this error message: [root@router]~# service pimd start Starting pimd. pimd: 17:22:59.119 Failed adding VIF 0 (MRT_ADD_VIF) for iface vtnet0:(error 45): Operation not supported May 5 17:22:59 router pimd[1810]: Failed adding VIF 0 (MRT_ADD_VIF) for iface vtnet0: Operation not supported /usr/local/etc/rc.d/pimd: WARNING: failed to start pimd Is it a bug or a non-implemented feature ? I didn't meet this problem on virtualbox with em(4) interfaces. Regards, From owner-freebsd-net@FreeBSD.ORG Wed May 6 12:51:20 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 43D653CC for ; Wed, 6 May 2015 12:51:20 +0000 (UTC) Received: from mail-yk0-x233.google.com (mail-yk0-x233.google.com [IPv6:2607:f8b0:4002:c07::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 04A661139 for ; Wed, 6 May 2015 12:51:20 +0000 (UTC) Received: by ykeo186 with SMTP id o186so2082629yke.0 for ; Wed, 06 May 2015 05:51:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=pvkh9wwgE9VDXRh2I1A80Mm7vnRPsj5gT7/4rptR1Zs=; b=CRJ22O3FCpZhUInzeIEVLBtVrj+xJihNq1ZITrlW1SLWZaZaMeyplEK44q+NTna7ZH pnS+hX0sN3rq0fyZAOBXCqrTdFXzOv53eKT+X7OS7+DiLhu1JaHoUondQIoYn+6dldgz p4QBKokst7HntC//WiESlUDqE0vhWvKfjgfKRbP1wtWjCcD+ApdIRbskH6NUg+evXnvN 6PKbGBDtEsO21IsrllJ0ddhlaFZdXsDtweDQ/ow72Ze9UgSx42nPYuSi6hLYRvK5Ws0c Uw6uPkdRBzcI5C1LSNsULk5YCFbBEhtg6MUZmHza7c2l2qY8uCs9cK1Q74xx8YGAAan9 y8yQ== MIME-Version: 1.0 X-Received: by 10.170.60.13 with SMTP id c13mr28163038ykc.72.1430916679068; Wed, 06 May 2015 05:51:19 -0700 (PDT) Received: by 10.13.252.6 with HTTP; Wed, 6 May 2015 05:51:19 -0700 (PDT) Date: Wed, 6 May 2015 14:51:19 +0200 Message-ID: Subject: FreeBSD makes linux think other subet is in same lan. From: Martin Larsson To: freebsd-net@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 12:51:20 -0000 This is a small summary of https://forums.freebsd.org/threads/routing-issue-with-ipsec-windows-works-linux-doesnt.51201/ . Setup: My side 192.168.1.0/24 Freebsd (default gateway and ipsec gateway, 192.168.1.1) windows, linux etc 10.11.12.0/24 other net 1: connect with ipsec to another subnet. When tunnel is up, all computers behind can ping the remote subnet, but not freebsd itself. So, I add a route: route add -net 10.11.12.0/24 192.168.1.1 Now, FreeBSD itselt can also ping 10.11.12.0/24 host, but Linux stop working. windows can ping in both cases though. Here is arp -n on linux after the route is added on the freebsd gateway. Linux:~ # arp -a ? (10.11.12.13) at on eth0 ? (192.168.1.125) at b4:52:7e:95:2a:f5 [ether] on eth0 ? (192.168.1.1) at 00:1b:21:00:62:62 [ether] on eth0 ? (192.168.1.160) at 84:38:38:6a:ec:91 [ether] on eth0 ? (192.168.1.6) at 1c:6f:65:21:36:96 [ether] on eth0 ? (192.168.1.5) at 00:1a:4d:63:d8:5c [ether] on eth0 So somehow it thinks 10.11.12.0/24 is in its lan. This very same scenario works fine if I replace my freebsd gateway with openbsd or linux. So could this be a bug or am I doing something wrong? Best regards Niklas From owner-freebsd-net@FreeBSD.ORG Wed May 6 12:55:37 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6E2C55BA for ; Wed, 6 May 2015 12:55:37 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 58549121F for ; Wed, 6 May 2015 12:55:37 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t46CtbS5044477 for ; Wed, 6 May 2015 12:55:37 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199933] re0 fails on boot, but works after manual intervention Date: Wed, 06 May 2015 12:55:37 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: linimon@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: assigned_to Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 12:55:37 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199933 Mark Linimon changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|freebsd-bugs@FreeBSD.org |freebsd-net@FreeBSD.org -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Wed May 6 15:33:40 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D089FA29 for ; Wed, 6 May 2015 15:33:40 +0000 (UTC) Received: from kerio.tuxis.nl (alcyone.saas.tuxis.net [31.3.111.19]) (using TLSv1.1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D7BC11613 for ; Wed, 6 May 2015 15:33:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=tuxis.nl; s=mail; h=from:subject:date:message-id:to:mime-version:content-type:in-reply-to: references; bh=wg3HAHEDc8WSe9ytGmDg/AWfMkNKzdnuB8Yysw1HghY=; b=XMPr0aWePCWpSKVka5yxdMP8IizimaWiRUyLRuD4u8VBaIP4s82jzg/GJb7s39YZIYoFy/Zgk34Vw Jh4/ATPUL5Np8/XTJPwvdTaKI6navDhoRHS3vdR5Wx2CuMUsQDtPyWTrGy4MyZTjngZCHxunNkYst7 SXYGSbBxuoTkNahhwd10cs1HYkW4Hav++fWM7p4LjmKppsW124Eux5JN6b7pwM1bbcguf8XcTWFsfr tx1iNurghmT8jK3od7DkzTb1lm4kt6q8lkfEzH7BxpEJhokO0H7wdOIy7K/23+rC33saUXPEQEoUke ZxnJFA6NVFmL7dpLRqGgsLp84wGmOxw== X-Footer: dHV4aXMubmw= Received: from [31.3.104.222] ([31.3.104.222]) (authenticated user mark@tuxis.nl) by kerio.tuxis.nl (Kerio Connect 8.5.0 RC 1) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128 bits)) for freebsd-net@freebsd.org; Wed, 6 May 2015 17:03:25 +0200 Message-ID: <554A2D3D.3060408@tuxis.nl> Date: Wed, 06 May 2015 17:03:25 +0200 From: Mark Schouten User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0 MIME-Version: 1.0 To: freebsd-net@freebsd.org Subject: Re: Frequent hickups on the networking layer References: <137094161.27589033.1430255162390.JavaMail.root@uoguelph.ca> <5540889A.5030904@tuxis.nl> <21824.58754.452182.195043@hergotha.csail.mit.edu> In-Reply-To: <21824.58754.452182.195043@hergotha.csail.mit.edu> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 15:33:40 -0000 Hi, On 04/29/2015 04:06 PM, Garrett Wollman wrote: > If you're using one of the drivers that has this problem, then yes, > keeping your layer-2 MTU/MRU below 4096 will probably cause it to use > 4k (page-sized) clusters instead, which are perfectly safe. > > As a side note, at least on the hardware I have to support, Infiniband > is limited to 4k MTU -- so I have one "jumbo" network with 4k frames > (that's bridged to IB) and one with 9k frames (that everything else > uses). So I was thinking, a customer of mine runs mostly the same setup, and has no issues at all. The only difference, MTU of 1500 vs MTU of 9000. I also created a graph in munin, graphing the number of mbuf_jumbo requests and failures. I find that when lots of writes occur to the iscsi-layer, the number of failed requests grow, and so so the number of errors on the ethernet interface. See attached images. My customer is also not suffering from crashing ctld-daemons, which crashes every other minute in my setup. So tonight I'm going to switch to an MTU of 1500, I'll let you know if that helped. Regards, Mark Schouten From owner-freebsd-net@FreeBSD.ORG Wed May 6 17:10:46 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [8.8.178.116]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 88223CBD for ; Wed, 6 May 2015 17:10:46 +0000 (UTC) Received: from butcher-nb.yandex.net (hub.freebsd.org [IPv6:2001:1900:2254:206c::16:88]) by mx2.freebsd.org (Postfix) with ESMTP id C04C419A1; Wed, 6 May 2015 17:10:45 +0000 (UTC) Message-ID: <554A4AA1.4070109@FreeBSD.org> Date: Wed, 06 May 2015 20:08:49 +0300 From: "Andrey V. Elsukov" User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Martin Larsson , freebsd-net@freebsd.org Subject: Re: FreeBSD makes linux think other subet is in same lan. References: In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="x71uXBvkTQGr5dl97E2WoIpVUfXK391lK" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 17:10:46 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --x71uXBvkTQGr5dl97E2WoIpVUfXK391lK Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 06.05.2015 15:51, Martin Larsson wrote: > This is a small summary of > https://forums.freebsd.org/threads/routing-issue-with-ipsec-windows-wor= ks-linux-doesnt.51201/ Can you provide run-time configuration from your FreeBSD gateway? # setkey -D # setkey -DP # netstat -rnf inet --=20 WBR, Andrey V. Elsukov --x71uXBvkTQGr5dl97E2WoIpVUfXK391lK Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJVSkqhAAoJEAHF6gQQyKF6wKUH/28gVyJ4X1VX3+HOeqh862zy TU4GL2+ZFM2+9qRXfRRAMQoW3YykEmxnnAPFyCAF7Tx54jMajp4DLu1DU0R2nL/K dlnMTrK55dixwn/y+rBOlBGvkcx1h/+oT9TSCYHSE93vp9+ltj5FJaIf707iyLgz toNaFjl1S1OG/i7w2TofZbECIUHt8uSPKEeJ0oZCOG3amrqbM8USP1vCMhkhXhaB GgMLDN3kT3PCXGDTWUq4AtpR60DH24tqDRD3nr38D/Fk5M2JvXD5PPORbY/bA90w zXsI2M7+kBxVWESqWP1dyXUMc04ioDSRG9DUACRSTk/K4PmN1QgvODNUn/s/HzM= =lZDa -----END PGP SIGNATURE----- --x71uXBvkTQGr5dl97E2WoIpVUfXK391lK-- From owner-freebsd-net@FreeBSD.ORG Wed May 6 19:30:52 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 37A34285; Wed, 6 May 2015 19:30:52 +0000 (UTC) Received: from mail-yh0-x232.google.com (mail-yh0-x232.google.com [IPv6:2607:f8b0:4002:c01::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EAD3F12CA; Wed, 6 May 2015 19:30:51 +0000 (UTC) Received: by yhcb70 with SMTP id b70so5193519yhc.0; Wed, 06 May 2015 12:30:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=BtwdJestcOF48NYzjvAVkqG1EH+1C1Sr3+pL7BAqbuM=; b=yyE+XbVMh2PpIGYmrJ3+qaiiX1WQkM1qdOWVOYmsn6QGn4lghucgDVJ8B7IjJqMV5l aFUUuJGaZSxhLDNQ9MOgXRAruhBMG0NE+/ef/r4n6RX4ySGOnuUnCWVG4LyIhuKex5o9 +LHi+gQMitDTi9i/wCCIqFWXBcQoZUh4JY7qaXv9fKanb9QWL9NyhuWQab5WSsMXKIU1 SXlaiz9oYizAksNV7U0VNpW/j8d5cgPMp6OlZSS3qzACuVz2nL+2sZA1VNuC0dfn43X3 R3TwVi5tLNbmY9MjyFO18sz54VLzxfAUCfXRvemQtg8QwqCNcMq/weNZfnhQskCqEABz NFrg== MIME-Version: 1.0 X-Received: by 10.236.206.113 with SMTP id k77mr186645yho.177.1430940650907; Wed, 06 May 2015 12:30:50 -0700 (PDT) Received: by 10.13.252.6 with HTTP; Wed, 6 May 2015 12:30:50 -0700 (PDT) In-Reply-To: <554A4AA1.4070109@FreeBSD.org> References: <554A4AA1.4070109@FreeBSD.org> Date: Wed, 6 May 2015 21:30:50 +0200 Message-ID: Subject: Re: FreeBSD makes linux think other subet is in same lan. From: Martin Larsson To: "Andrey V. Elsukov" Cc: freebsd-net@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 19:30:52 -0000 Yes. root@fjuttsi:~ # setkey -D 85.230.59.213 194.41.121.12 esp mode=tunnel spi=1120293717(0x42c65355) reqid=1(0x00000001) E: rijndael-cbc 41c6cbe5 4de2a11f e6e57092 58251b2c b51272ba 90f5a84a b9a121db eaf79bb0 A: hmac-sha2-256 5ca5b365 4ca57b11 239d2487 6def4b97 e6bf2949 ea198f6a 97bf5165 4076f66a seq=0x000000b6 replay=4 flags=0x00000000 state=mature created: May 6 21:00:03 2015 current: May 6 21:29:01 2015 diff: 1738(s) hard: 3600(s) soft: 3057(s) last: May 6 21:28:48 2015 hard: 0(s) soft: 0(s) current: 26296(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 182 hard: 0 soft: 0 sadb_seq=1 pid=9279 refcnt=2 194.41.121.12 85.230.59.213 esp mode=tunnel spi=3371580414(0xc8f63bfe) reqid=1(0x00000001) E: rijndael-cbc 69c241be 9465927f a3204ccb 806ee040 69296c1c 1851459a 49d1bba0 fa479454 A: hmac-sha2-256 5621f6ec 85027965 e20f7db0 279c2085 4a2c7061 561afcc2 f4a843d1 cffaf27f seq=0x00000076 replay=4 flags=0x00000000 state=mature created: May 6 21:00:03 2015 current: May 6 21:29:01 2015 diff: 1738(s) hard: 3600(s) soft: 2560(s) last: May 6 21:28:45 2015 hard: 0(s) soft: 0(s) current: 10940(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 118 hard: 0 soft: 0 sadb_seq=0 pid=9279 refcnt=1 root@fjuttsi:~ # setkey -DP 10.11.12.0/24[any] 192.168.1.0/24[any] any in ipsec esp/tunnel/194.41.121.12-85.230.59.213/unique:1 created: May 6 21:00:03 2015 lastused: May 6 21:00:03 2015 lifetime: 9223372036854775807(s) validtime: 0(s) spid=2198 seq=1 pid=9282 refcnt=1 192.168.1.0/24[any] 10.11.12.0/24[any] any out ipsec esp/tunnel/85.230.59.213-194.41.121.12/unique:1 created: May 6 21:00:03 2015 lastused: May 6 21:29:07 2015 lifetime: 9223372036854775807(s) validtime: 0(s) spid=2197 seq=0 pid=9282 refcnt=1 root@fjuttsi:~ # netstat -rnf inet Routing tables Internet: Destination Gateway Flags Netif Expire default 85.230.56.1 UGS re0 10.11.12.0/24 192.168.1.1 UGS em0 85.230.56.0/22 link#2 U re0 85.230.59.213 link#2 UHS lo0 127.0.0.1 link#3 UH lo0 192.168.1.0/24 link#1 U em0 192.168.1.1 link#1 UHS lo0 192.168.1.3 link#1 UHS lo0 On Wed, May 6, 2015 at 7:08 PM, Andrey V. Elsukov wrote: > On 06.05.2015 15:51, Martin Larsson wrote: > > This is a small summary of > > > https://forums.freebsd.org/threads/routing-issue-with-ipsec-windows-works-linux-doesnt.51201/ > > Can you provide run-time configuration from your FreeBSD gateway? > > # setkey -D > # setkey -DP > # netstat -rnf inet > > -- > WBR, Andrey V. Elsukov > > From owner-freebsd-net@FreeBSD.ORG Wed May 6 19:51:51 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A59B1C00 for ; Wed, 6 May 2015 19:51:51 +0000 (UTC) Received: from mail-yk0-x22f.google.com (mail-yk0-x22f.google.com [IPv6:2607:f8b0:4002:c07::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 62F12156A for ; Wed, 6 May 2015 19:51:51 +0000 (UTC) Received: by ykeo186 with SMTP id o186so5587931yke.0 for ; Wed, 06 May 2015 12:51:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=gUbuY8PDarCr2k8F8HmyhUaE+gGwTd2i/qtQjO+Jrbg=; b=yrbGHYVMmVrq3LT8cLs6kpIuy5xrOWOKsYaE0Y4PG6Bu8lvVbYrcf0f6+EVN6Nk2CW nqHUmr0LvUtr/qqsDk5xwqFWykLuWhuz1Sgrm7fwWC4Ibcwybhp0uY5zQmklpat6PaPm EcZ/XcdEgXmsGd//R0JHxELvev1FRQ24+4oOPzATGCaBG/BKwOsnhpy6WscsdtdoWqvM 3WHQsfPlWdJ/SAAsYbeMJnzOhEn/oD70K5r3PINfAchNmjCoWscp9jkv9w2CvZ2uxAvZ AqbAfkJ60YVs/taxKd79YqnEe8zkWg6N7OZUXEecsZIBfMD1AgW0lnaV/YciEkyeko8e eZdA== MIME-Version: 1.0 X-Received: by 10.236.110.9 with SMTP id t9mr285445yhg.35.1430941909507; Wed, 06 May 2015 12:51:49 -0700 (PDT) Sender: ermal.luci@gmail.com Received: by 10.129.123.197 with HTTP; Wed, 6 May 2015 12:51:49 -0700 (PDT) In-Reply-To: References: Date: Wed, 6 May 2015 21:51:49 +0200 X-Google-Sender-Auth: N_2_2mSRdWhvX6nHBCJPNcssOfI Message-ID: Subject: Re: FreeBSD makes linux think other subet is in same lan. From: =?UTF-8?Q?Ermal_Lu=C3=A7i?= To: Martin Larsson Cc: freebsd-net Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 19:51:51 -0000 On Wed, May 6, 2015 at 2:51 PM, Martin Larsson wrote: > This is a small summary of > > https://forums.freebsd.org/threads/routing-issue-with-ipsec-windows-works-linux-doesnt.51201/ > . > > > Setup: > My side > 192.168.1.0/24 > Freebsd (default gateway and ipsec gateway, 192.168.1.1) > windows, linux etc > > 10.11.12.0/24 > other net > > 1: connect with ipsec to another subnet. > When tunnel is up, all computers behind can ping the remote subnet, but not > freebsd itself. > Did you try by running ping with -S option to ping? Normally you should not need the route below since ping needs to be sourcing from your LAN ip to go to the other end. > So, I add a route: route add -net 10.11.12.0/24 192.168.1.1 > > Now, FreeBSD itselt can also ping 10.11.12.0/24 host, but Linux stop > working. > windows can ping in both cases though. > > Here is arp -n on linux after the route is added on the freebsd gateway. > > Linux:~ # arp -a > ? (10.11.12.13) at on eth0 > ? (192.168.1.125) at b4:52:7e:95:2a:f5 [ether] on eth0 > ? (192.168.1.1) at 00:1b:21:00:62:62 [ether] on eth0 > ? (192.168.1.160) at 84:38:38:6a:ec:91 [ether] on eth0 > ? (192.168.1.6) at 1c:6f:65:21:36:96 [ether] on eth0 > ? (192.168.1.5) at 00:1a:4d:63:d8:5c [ether] on eth0 > > So somehow it thinks 10.11.12.0/24 is in its lan. > This very same scenario works fine if I replace my freebsd gateway with > openbsd or linux. > So could this be a bug or am I doing something wrong? > > Best regards > Niklas > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > -- Ermal From owner-freebsd-net@FreeBSD.ORG Wed May 6 20:05:27 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AEA5C24F; Wed, 6 May 2015 20:05:27 +0000 (UTC) Received: from mail-yh0-x22b.google.com (mail-yh0-x22b.google.com [IPv6:2607:f8b0:4002:c01::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6CB3016AF; Wed, 6 May 2015 20:05:27 +0000 (UTC) Received: by yhrr66 with SMTP id r66so5426511yhr.3; Wed, 06 May 2015 13:05:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NyhY04Tb1aB790TVHCV6HCK4PzsQtoXpikoS/Rf/0Z0=; b=z2w9pbNSW4CfHBsWgApUQ+z4gcsLH7QpRea9iLFn+HC5X8syan9SbXFeyiwwkuvq5c Vn2281HhWXgEOc3mFgOdrJNGGVyjUvaqPg4o/nAgIMtAIP02/glnIzAz36vg9QM1I4z+ qy6znqXIo48k+fj76hdne7zYBK76ekdeQuPO4YZTbvG5WFEsk1up1gCO8nPkHKY2rDK6 vVkNGEB9PVQMVH7HjJEhyoYoISZf7YxX3N5awVrbQoDy2X0YYbn6xeJ1+TKfH1x/ThRk fWfi8xU89aswg1nXGmqXDmLcz7CTNSi9NL3D/xI2CJ6z7W1BRRpKT5p+xbqYIi7rhRhd owJQ== MIME-Version: 1.0 X-Received: by 10.236.13.80 with SMTP id a56mr331665yha.25.1430942726635; Wed, 06 May 2015 13:05:26 -0700 (PDT) Received: by 10.13.252.6 with HTTP; Wed, 6 May 2015 13:05:26 -0700 (PDT) In-Reply-To: References: Date: Wed, 6 May 2015 22:05:26 +0200 Message-ID: Subject: Re: FreeBSD makes linux think other subet is in same lan. From: Martin Larsson To: =?UTF-8?Q?Ermal_Lu=C3=A7i?= Cc: freebsd-net Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 20:05:27 -0000 yes, without adding the route, ping -S 192.168.1.1 10.11.12.13 works. On Wed, May 6, 2015 at 9:51 PM, Ermal Lu=C3=A7i wrote: > > > On Wed, May 6, 2015 at 2:51 PM, Martin Larsson > wrote: > >> This is a small summary of >> >> https://forums.freebsd.org/threads/routing-issue-with-ipsec-windows-work= s-linux-doesnt.51201/ >> . >> >> >> Setup: >> My side >> 192.168.1.0/24 >> Freebsd (default gateway and ipsec gateway, 192.168.1.1) >> windows, linux etc >> >> 10.11.12.0/24 >> other net >> >> 1: connect with ipsec to another subnet. >> When tunnel is up, all computers behind can ping the remote subnet, but >> not >> freebsd itself. >> > > Did you try by running ping with -S option to ping? > Normally you should not need the route below since ping needs to be > sourcing from your LAN ip to go to the other end. > > >> So, I add a route: route add -net 10.11.12.0/24 192.168.1.1 >> >> Now, FreeBSD itselt can also ping 10.11.12.0/24 host, but Linux stop >> working. >> windows can ping in both cases though. >> >> Here is arp -n on linux after the route is added on the freebsd gateway. >> >> Linux:~ # arp -a >> ? (10.11.12.13) at on eth0 >> ? (192.168.1.125) at b4:52:7e:95:2a:f5 [ether] on eth0 >> ? (192.168.1.1) at 00:1b:21:00:62:62 [ether] on eth0 >> ? (192.168.1.160) at 84:38:38:6a:ec:91 [ether] on eth0 >> ? (192.168.1.6) at 1c:6f:65:21:36:96 [ether] on eth0 >> ? (192.168.1.5) at 00:1a:4d:63:d8:5c [ether] on eth0 >> >> So somehow it thinks 10.11.12.0/24 is in its lan. >> This very same scenario works fine if I replace my freebsd gateway with >> openbsd or linux. >> So could this be a bug or am I doing something wrong? >> >> Best regards >> Niklas >> _______________________________________________ >> freebsd-net@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-net >> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" >> > > > > -- > Ermal > From owner-freebsd-net@FreeBSD.ORG Wed May 6 23:24:03 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0DEB156E for ; Wed, 6 May 2015 23:24:03 +0000 (UTC) Received: from phlegethon.blisses.org (phlegethon.blisses.org [50.56.97.101]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E59051EC0 for ; Wed, 6 May 2015 23:24:02 +0000 (UTC) Received: from blisses.org (cocytus.blisses.org [23.25.209.73]) by phlegethon.blisses.org (Postfix) with ESMTPSA id 139C5149093; Wed, 6 May 2015 19:24:00 -0400 (EDT) Date: Wed, 6 May 2015 19:23:58 -0400 From: Mason Loring Bliss To: Jim Thompson Cc: freebsd-net@freebsd.org Subject: Re: IPsec on a LAN? Message-ID: <20150506232358.GA4925@blisses.org> References: <20150506061029.GG4033@blisses.org> <7D6A77D9-9EFE-471D-97BA-E1D854AE23B1@netgate.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7D6A77D9-9EFE-471D-97BA-E1D854AE23B1@netgate.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 23:24:03 -0000 On Wed, May 06, 2015 at 01:28:59AM -0500, Jim Thompson wrote: > What you’re looking for is “transport mode” IPsec. Thank you. Yes. The stuff you found for me looks exactly right. :) -- Mason Loring Bliss mason@blisses.org http://blisses.org/ "I am a brother of jackals, and a companion of ostriches." (Job 30 : 29) From owner-freebsd-net@FreeBSD.ORG Thu May 7 09:06:38 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ADC672EB for ; Thu, 7 May 2015 09:06:38 +0000 (UTC) Received: from forward8l.mail.yandex.net (forward8l.mail.yandex.net [IPv6:2a02:6b8:0:1819::8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Certum Level IV CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A2611348 for ; Thu, 7 May 2015 09:06:38 +0000 (UTC) Received: from smtp14.mail.yandex.net (smtp14.mail.yandex.net [95.108.131.192]) by forward8l.mail.yandex.net (Yandex) with ESMTP id 2A5371A41443; Thu, 7 May 2015 12:06:24 +0300 (MSK) Received: from smtp14.mail.yandex.net (localhost [127.0.0.1]) by smtp14.mail.yandex.net (Yandex) with ESMTP id B35CC1B6105D; Thu, 7 May 2015 12:06:23 +0300 (MSK) Received: from unknown (unknown [2a02:6b8:0:81f::1d6]) by smtp14.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id ls2IGAwHBS-6Nj44Qiw; Thu, 7 May 2015 12:06:23 +0300 (using TLSv1.2 with cipher AES128-SHA (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1430989583; bh=6IQXj2Ku1+eemB9+56MMHHrIXdhU8Ge3oL7pL2fmZTE=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: References:In-Reply-To:Content-Type; b=Nzti5HkyNQMtBw9erkGjDAUhAkbNuKRDEmIXDOqqQcBy47UOPxgZ3tOuSdxr+/0S/ a0gMQV2wviZ2gDRHILT7tueOwYa6AaFHsxjrwQQu9mPZH4A/+0D5zItJ3bpLjIAWmO wAppV4n8cchsu+u0GZa3CXHvBex1ub3KOU4xXZIs= Authentication-Results: smtp14.mail.yandex.net; dkim=pass header.i=@yandex.ru Message-ID: <554B2A95.8030600@yandex.ru> Date: Thu, 07 May 2015 12:04:21 +0300 From: "Andrey V. Elsukov" User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Martin Larsson , freebsd-net@freebsd.org Subject: Re: FreeBSD makes linux think other subet is in same lan. References: In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="ctac6hlqj3eUi9NWNB73E805phEDMa9wa" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 May 2015 09:06:38 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --ctac6hlqj3eUi9NWNB73E805phEDMa9wa Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 06.05.2015 15:51, Martin Larsson wrote: > Now, FreeBSD itselt can also ping 10.11.12.0/24 host, but Linux stop > working. > windows can ping in both cases though. >=20 > Here is arp -n on linux after the route is added on the freebsd gateway= =2E >=20 > Linux:~ # arp -a > ? (10.11.12.13) at on eth0 > ? (192.168.1.125) at b4:52:7e:95:2a:f5 [ether] on eth0 I think it is because FreeBSD sends ICMP redirects when it finds that route to the given destination goes back to the receiving interface. Try to disable ICMP redirects: # sysctl net.inet.ip.redirect=3D0 --=20 WBR, Andrey V. Elsukov --ctac6hlqj3eUi9NWNB73E805phEDMa9wa Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJVSyqVAAoJEAHF6gQQyKF6eygH/RuEFK3RKNtgc38TekjYzyo0 3V6UhzDtVmGdJW/1kvvIEASC34IKHj4uB+IdWnpOy80qbC+Q5if+2MREdwBpv1nS aZz4zMAVUKnKhmAkgbj46XSraG/VXMCOmN2OAiidNuWrPMs5x9yRteEs4xIiCwDH iIUPot0XunhCknK68aDqq/NnJaHOWq/+0GvLjBKJE8dY4NQV7U2zcUi2jU+BB0Ji 9d6xyILQGHf0hS7A66Xgtr5G9Kriiw90AWHvDrKNCJr9HhMfTTMRq2Cb3gLCr4ve M7s/usax2dCN/QaZ5wb49uBq2+ZEpYgYnr/26iJWnhouysx2XcMAtingDkXE3cE= =izHR -----END PGP SIGNATURE----- --ctac6hlqj3eUi9NWNB73E805phEDMa9wa-- From owner-freebsd-net@FreeBSD.ORG Thu May 7 09:14:13 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 63B38702 for ; Thu, 7 May 2015 09:14:13 +0000 (UTC) Received: from mail-yh0-x22c.google.com (mail-yh0-x22c.google.com [IPv6:2607:f8b0:4002:c01::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 22AEF1493 for ; Thu, 7 May 2015 09:14:13 +0000 (UTC) Received: by yhda23 with SMTP id a23so9438471yhd.2 for ; Thu, 07 May 2015 02:14:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NFtjba0KxQvPDZz6Z9lHzq6UPL+ho/Qeux66fSLlr2A=; b=0gu30HkVnQfoOX6YxdIHGwUPr2qW49yv7ugK3kHmcFQSXYKz3XTndyBPij28PoMeBd i+AyLnhMN23tYW+LgTj5T/7iLdctmnTArSgR+c6jv1cyOASFAy1yVKJFSICyLu9/qEW2 JD3OIy68cK6UefCXpFglfOo6YqBcsa9yJU0tolkt4J0v1Bu3h7I5d7WNy4pgdcJLZYeB gdlJzywBW1RH948W6wddm+u5aABeLqrYBevzMyhP/NijJQA28zrbFs7lNH2eXD8iotit sZvp8JwpSYH+zapsmMmCpMN5sJYmFRgma0XGhRwj+YZHTy+hjsLhyeYk0tze0eDKqvzR vzIw== MIME-Version: 1.0 X-Received: by 10.236.222.193 with SMTP id t61mr2357228yhp.40.1430990052117; Thu, 07 May 2015 02:14:12 -0700 (PDT) Received: by 10.13.252.6 with HTTP; Thu, 7 May 2015 02:14:12 -0700 (PDT) In-Reply-To: <554B2A95.8030600@yandex.ru> References: <554B2A95.8030600@yandex.ru> Date: Thu, 7 May 2015 11:14:12 +0200 Message-ID: Subject: Re: FreeBSD makes linux think other subet is in same lan. From: Martin Larsson To: "Andrey V. Elsukov" Cc: freebsd-net Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 May 2015 09:14:13 -0000 yes, that made the trick! Thanks alot Andrey! On Thu, May 7, 2015 at 11:04 AM, Andrey V. Elsukov wrote: > On 06.05.2015 15:51, Martin Larsson wrote: > > Now, FreeBSD itselt can also ping 10.11.12.0/24 host, but Linux stop > > working. > > windows can ping in both cases though. > > > > Here is arp -n on linux after the route is added on the freebsd gateway. > > > > Linux:~ # arp -a > > ? (10.11.12.13) at on eth0 > > ? (192.168.1.125) at b4:52:7e:95:2a:f5 [ether] on eth0 > > I think it is because FreeBSD sends ICMP redirects when it finds that > route to the given destination goes back to the receiving interface. > > Try to disable ICMP redirects: > # sysctl net.inet.ip.redirect=0 > > -- > WBR, Andrey V. Elsukov > > From owner-freebsd-net@FreeBSD.ORG Thu May 7 15:39:05 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A2E3E372 for ; Thu, 7 May 2015 15:39:05 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8DDB6161A for ; Thu, 7 May 2015 15:39:05 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t47Fd5aU074027 for ; Thu, 7 May 2015 15:39:05 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199996] Link Aggregation LAGG: LACP bugs in 10.1 Date: Thu, 07 May 2015 15:39:05 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: linimon@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: assigned_to Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 May 2015 15:39:05 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199996 Mark Linimon changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|freebsd-bugs@FreeBSD.org |freebsd-net@FreeBSD.org -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Fri May 8 09:07:40 2015 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BB700907 for ; Fri, 8 May 2015 09:07:40 +0000 (UTC) Received: from smtp209.alice.it (smtp209.alice.it [82.57.200.105]) by mx1.freebsd.org (Postfix) with ESMTP id 5540F18E8 for ; Fri, 8 May 2015 09:07:39 +0000 (UTC) Received: from soth.ventu (82.52.27.173) by smtp209.alice.it (8.6.060.28) (authenticated as acanedi@alice.it) id 552F94EA035D4801 for net@freebsd.org; Fri, 8 May 2015 11:02:17 +0200 Received: from alamar.ventu (alamar.ventu [10.1.2.18]) by soth.ventu (8.15.1/8.14.9) with ESMTP id t4892G1O089421 for ; Fri, 8 May 2015 11:02:16 +0200 (CEST) (envelope-from ml@netfence.it) Message-ID: <554C7B98.2040101@netfence.it> Date: Fri, 08 May 2015 11:02:16 +0200 From: Andrea Venturoli User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: net@freebsd.org Subject: ipfw dyn_keepalive Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 May 2015 09:07:40 -0000 Hello. I'm having some troubles with dynamic rules and keep-alives... Let's say a client connect to a TCP port on my server and a keep-state rules allows the connection; the connection is setup correctly and some data exchanged. Then there is some minutes of silence and the rule expires. However, I read in "man ipfw" that if net.inet.ip.fw.dyn_keepalive=1 (which is holds by default and I verified in my case): "A keepalive is generated to both sides of the connection every 5 seconds for the last 20 seconds of the lifetime of the rule". If I understand that correctly, then these rules should never expire (as long as the client answers those packets, I suppose); this is however in contrast to what I experience. I looked around, but found no pointers about this. How is it supposed to work? Does it need anything special on the client side or is it expected to always answer those packets? Any good document about this? bye & Thanks av. From owner-freebsd-net@FreeBSD.ORG Fri May 8 17:19:55 2015 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1677A9D0 for ; Fri, 8 May 2015 17:19:55 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [IPv6:2001:4f8:3:ffe0:406a:0:50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E80BA14BC for ; Fri, 8 May 2015 17:19:54 +0000 (UTC) Received: from phabric-backend.isc.freebsd.org (phabric-backend.isc.freebsd.org [127.0.1.5]) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9) with ESMTP id t48HJsxH045026 for ; Fri, 8 May 2015 17:19:54 GMT (envelope-from daemon-user@phabric-backend.isc.freebsd.org) Received: (from daemon-user@localhost) by phabric-backend.isc.freebsd.org (8.14.9/8.14.9/Submit) id t48HJswm045025; Fri, 8 May 2015 17:19:54 GMT (envelope-from daemon-user) Date: Fri, 8 May 2015 17:19:54 +0000 To: freebsd-net@freebsd.org From: "nvass-gmx.com (Nikos Vassiliadis)" Subject: [Differential] [Updated, 197 lines] D1944: PF and VIMAGE fixes Message-ID: X-Priority: 3 Thread-Topic: D1944: PF and VIMAGE fixes X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: In-Reply-To: References: Thread-Index: NDc2NzM0MzY4OTdiYThiNTU1MjY2ZDZmMTJiIFVM8Do= Precedence: bulk X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_f4a650d973dfb525651b66d498237b50" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 May 2015 17:19:55 -0000 --b1_f4a650d973dfb525651b66d498237b50 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit nvass-gmx.com updated this revision to Diff 5290. nvass-gmx.com added a comment. Hi, Please review this. It updates the previous patch, with another way to unload pf. Eventhandlers are also touched, they should behave correctly now. CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D1944?vs=3915&id=5290 REVISION DETAIL https://reviews.freebsd.org/D1944 AFFECTED FILES sys/net/pfvar.h sys/netpfil/pf/pf.c sys/netpfil/pf/pf_if.c sys/netpfil/pf/pf_ioctl.c sys/netpfil/pf/pf_norm.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: nvass-gmx.com, bz, zec, trociny, glebius, rodrigc, kristof, gnn Cc: robak, freebsd-virtualization, freebsd-pf, freebsd-net --b1_f4a650d973dfb525651b66d498237b50 Content-Type: text/x-patch; charset=utf-8; name="D1944.5290.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D1944.5290.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRwZmlsL3BmL3BmX25vcm0uYyBiL3N5cy9uZXRwZmlsL3BmL3Bm X25vcm0uYwotLS0gYS9zeXMvbmV0cGZpbC9wZi9wZl9ub3JtLmMKKysrIGIvc3lzL25ldHBmaWwv cGYvcGZfbm9ybS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAib3B0X3BmLmgiCiAKICNp bmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CiAjaW5jbHVkZSA8 c3lzL2xvY2suaD4KICNpbmNsdWRlIDxzeXMvbWJ1Zi5oPgogI2luY2x1ZGUgPHN5cy9tdXRleC5o PgpAQCAtMTA4LDYgKzEwOSw3IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IG10eCBwZl9mcmFnX210 eDsKK01UWF9TWVNJTklUKHBmX2ZyYWdfbXR4LCAmcGZfZnJhZ19tdHgsICJwZiBmcmFnbWVudHMi LCBNVFhfREVGKTsKICNkZWZpbmUgUEZfRlJBR19MT0NLKCkJCW10eF9sb2NrKCZwZl9mcmFnX210 eCkKICNkZWZpbmUgUEZfRlJBR19VTkxPQ0soKQltdHhfdW5sb2NrKCZwZl9mcmFnX210eCkKICNk ZWZpbmUgUEZfRlJBR19BU1NFUlQoKQltdHhfYXNzZXJ0KCZwZl9mcmFnX210eCwgTUFfT1dORUQp CkBAIC0xODEsNyArMTgzLDcgQEAKICNlbmRpZgkvKiBJTkVUICovCiAKIHZvaWQKLXBmX25vcm1h bGl6ZV9pbml0KHZvaWQpCitwZl92bmV0X25vcm1hbGl6ZV9pbml0KHZvaWQpCiB7CiAKIAlWX3Bm X2ZyYWdfeiA9IHVtYV96Y3JlYXRlKCJwZiBmcmFncyIsIHNpemVvZihzdHJ1Y3QgcGZfZnJhZ21l bnQpLApAQCAtMTk3LDggKzE5OSw2IEBACiAJdW1hX3pvbmVfc2V0X21heChWX3BmX2ZyZW50X3os IFBGRlJBR19GUkVOVF9ISVdBVCk7CiAJdW1hX3pvbmVfc2V0X3dhcm5pbmcoVl9wZl9mcmVudF96 LCAiUEYgZnJhZyBlbnRyaWVzIGxpbWl0IHJlYWNoZWQiKTsKIAotCW10eF9pbml0KCZwZl9mcmFn X210eCwgInBmIGZyYWdtZW50cyIsIE5VTEwsIE1UWF9ERUYpOwotCiAJVEFJTFFfSU5JVCgmVl9w Zl9mcmFncXVldWUpOwogCVRBSUxRX0lOSVQoJlZfcGZfY2FjaGVxdWV1ZSk7CiB9CkBAIC0yMTAs OCArMjEwLDYgQEAKIAl1bWFfemRlc3Ryb3koVl9wZl9zdGF0ZV9zY3J1Yl96KTsKIAl1bWFfemRl c3Ryb3koVl9wZl9mcmVudF96KTsKIAl1bWFfemRlc3Ryb3koVl9wZl9mcmFnX3opOwotCi0JbXR4 X2Rlc3Ryb3koJnBmX2ZyYWdfbXR4KTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvc3lz L25ldHBmaWwvcGYvcGZfaW9jdGwuYyBiL3N5cy9uZXRwZmlsL3BmL3BmX2lvY3RsLmMKLS0tIGEv c3lzL25ldHBmaWwvcGYvcGZfaW9jdGwuYworKysgYi9zeXMvbmV0cGZpbC9wZi9wZl9pb2N0bC5j CkBAIC04Nyw3ICs4Nyw4IEBACiAjaW5jbHVkZSA8bmV0L2FsdHEvYWx0cS5oPgogI2VuZGlmCiAK LXN0YXRpYyBpbnQJCSBwZmF0dGFjaCh2b2lkKTsKK3N0YXRpYyBpbnQJCSBwZl92bmV0X2luaXQo dm9pZCk7CitzdGF0aWMgaW50CQkgcGZfdm5ldF91bmluaXQodm9pZCk7CiBzdGF0aWMgc3RydWN0 IHBmX3Bvb2wJKnBmX2dldF9wb29sKGNoYXIgKiwgdV9pbnQzMl90LCB1X2ludDhfdCwgdV9pbnQz Ml90LAogCQkJICAgIHVfaW50OF90LCB1X2ludDhfdCwgdV9pbnQ4X3QpOwogCkBAIC0xNDksNiAr MTUwLDcgQEAKICNkZWZpbmUgRFBGUFJJTlRGKG4sIHgpIGlmIChWX3BmX3N0YXR1cy5kZWJ1ZyA+ PSAobikpIHByaW50ZiB4CiAKIHN0cnVjdCBjZGV2ICpwZl9kZXY7CitpbnQgbnVtYmVyX29mX3Zu ZXRzID0gMDsKIAogLyoKICAqIFhYWCAtIFRoZXNlIGFyZSBuZXcgYW5kIG5lZWQgdG8gYmUgY2hl Y2tlZCB3aGVuIG1vdmVpbmcgdG8gYSBuZXcgdmVyc2lvbgpAQCAtMjA1LDE3ICsyMDcsMTYgQEAK IHBmbG9nX3BhY2tldF90CQkJKnBmbG9nX3BhY2tldF9wdHIgPSBOVUxMOwogCiBzdGF0aWMgaW50 Ci1wZmF0dGFjaCh2b2lkKQorcGZfdm5ldF9pbml0KHZvaWQpCiB7CiAJdV9pbnQzMl90ICpteV90 aW1lb3V0ID0gVl9wZl9kZWZhdWx0X3J1bGUudGltZW91dDsKIAlpbnQgZXJyb3I7CiAKLQlpZiAo SVNfREVGQVVMVF9WTkVUKGN1cnZuZXQpKQotCQlwZl9tdGFnX2luaXRpYWxpemUoKTsKLQlwZl9p bml0aWFsaXplKCk7CisJbnVtYmVyX29mX3ZuZXRzKys7CisJcGZfdm5ldF9pbml0aWFsaXplKCk7 CiAJcGZyX2luaXRpYWxpemUoKTsKLQlwZmlfaW5pdGlhbGl6ZSgpOwotCXBmX25vcm1hbGl6ZV9p bml0KCk7CisJcGZpX3ZuZXRfaW5pdGlhbGl6ZSgpOworCXBmX3ZuZXRfbm9ybWFsaXplX2luaXQo KTsKIAogCVZfcGZfbGltaXRzW1BGX0xJTUlUX1NUQVRFU10ubGltaXQgPSBQRlNUQVRFX0hJV0FU OwogCVZfcGZfbGltaXRzW1BGX0xJTUlUX1NSQ19OT0RFU10ubGltaXQgPSBQRlNOT0RFX0hJV0FU OwpAQCAtMjg3LDcgKzI4OCw2MyBAQAogCiAJcmV0dXJuICgwKTsKIH0KK1ZORVRfU1lTSU5JVChw Zl92bmV0X2luaXQsIFNJX1NVQl9QUk9UT19JRkFUVEFDSERPTUFJTiwgU0lfT1JERVJfQU5ZIC0g MjU1LAorICAgIHBmX3ZuZXRfaW5pdCwgTlVMTCk7CiAKK3N0YXRpYyBpbnQKK3BmX3ZuZXRfdW5p bml0KHZvaWQpCit7CisJaW50IGVycm9yID0gMDsKKworCW51bWJlcl9vZl92bmV0cy0tOworCUtB U1NFUlQobnVtYmVyX29mX3ZuZXRzID49IDAsICgibnVtYmVyIG9mIHZuZXRzIDwgMCIpKTsKKwor CVBGX1JVTEVTX1JMT0NLKCk7CisJVl9wZl9lbmRfdGhyZWFkcysrOworCVBGX1JVTEVTX1JVTkxP Q0soKTsKKwl3YWtldXAocGZfcHVyZ2VfdGhyZWFkKTsKKwl3aGlsZSAoVl9wZl9lbmRfdGhyZWFk cyA8IDIpCisJCXBhdXNlKCJwZnVubGQiLCBoeiAvIDkpOworCisJVl9wZl9zdGF0dXMucnVubmlu ZyA9IDA7CisJc3dpX3JlbW92ZShWX3BmX3N3aV9jb29raWUpOworCWVycm9yID0gZGVob29rX3Bm KCk7CisJaWYgKGVycm9yKSB7CisJCS8qCisJCSAqIFNob3VsZCBub3QgaGFwcGVuIQorCQkgKiBY WFggRHVlIHRvIGVycm9yIGNvZGUgRVNSQ0gsIGtsZHVubG9hZCB3aWxsIHNob3cKKwkJICogYSBt ZXNzYWdlIGxpa2UgJ05vIHN1Y2ggcHJvY2VzcycuCisJCSAqLworCQlwcmludGYoIiVzIDogcGZp bCB1bnJlZ2lzdGVyYXRpb24gZmFpbFxuIiwgX19GVU5DVElPTl9fKTsKKwkJcmV0dXJuIGVycm9y OworCX0KKwlQRl9SVUxFU19XTE9DSygpOworCXNodXRkb3duX3BmKCk7CisJcGZfbm9ybWFsaXpl X2NsZWFudXAoKTsKKwlwZmlfY2xlYW51cCgpOworCXBmcl9jbGVhbnVwKCk7CisJcGZfb3NmcF9m bHVzaCgpOworCXBmX2NsZWFudXAoKTsKKworCS8qCisJICogRm9yIHRoZSBsYXN0IFZORVQgd2Ug cGVyZm9ybSB0aGUgZmluYWwgY2xlYW51cAorCSAqLworCWlmIChudW1iZXJfb2Zfdm5ldHMgPT0g MCkgeworCQlwZl91bmluaXRfZXZlbnRoYW5kbGVycygpOworCQlwZl9tdGFnX2NsZWFudXAoKTsK Kwl9CisJUEZfUlVMRVNfV1VOTE9DSygpOworCWlmIChudW1iZXJfb2Zfdm5ldHMgPT0gMCkgewor CQlkZXN0cm95X2RldihwZl9kZXYpOworCQlyd19kZXN0cm95KCZwZl9ydWxlc19sb2NrKTsKKwkJ c3hfZGVzdHJveSgmcGZfaW9jdGxfbG9jayk7CisJfQorCisJcmV0dXJuIChlcnJvcik7Cit9CitW TkVUX1NZU1VOSU5JVChwZl92bmV0X3VuaW5pdCwgU0lfU1VCX1BST1RPX0lGQVRUQUNIRE9NQUlO LCBTSV9PUkRFUl9BTlkgLSAyNTUsCisgICAgcGZfdm5ldF91bmluaXQsIE5VTEwpOworCiBzdGF0 aWMgc3RydWN0IHBmX3Bvb2wgKgogcGZfZ2V0X3Bvb2woY2hhciAqYW5jaG9yLCB1X2ludDMyX3Qg dGlja2V0LCB1X2ludDhfdCBydWxlX2FjdGlvbiwKICAgICB1X2ludDMyX3QgcnVsZV9udW1iZXIs IHVfaW50OF90IHJfbGFzdCwgdV9pbnQ4X3QgYWN0aXZlLApAQCAtMzcwNywyNyArMzc2NCwxMiBA QAogc3RhdGljIGludAogcGZfbG9hZCh2b2lkKQogewotCWludCBlcnJvcjsKIAotCVZORVRfSVRF UkFUT1JfREVDTCh2bmV0X2l0ZXIpOwotCi0JVk5FVF9MSVNUX1JMT0NLKCk7Ci0JVk5FVF9GT1JF QUNIKHZuZXRfaXRlcikgewotCQlDVVJWTkVUX1NFVCh2bmV0X2l0ZXIpOwotCQlWX3BmX3BmaWxf aG9va2VkID0gMDsKLQkJVl9wZl9lbmRfdGhyZWFkcyA9IDA7Ci0JCVRBSUxRX0lOSVQoJlZfcGZf dGFncyk7Ci0JCVRBSUxRX0lOSVQoJlZfcGZfcWlkcyk7Ci0JCUNVUlZORVRfUkVTVE9SRSgpOwot CX0KLQlWTkVUX0xJU1RfUlVOTE9DSygpOwotCiAJcndfaW5pdCgmcGZfcnVsZXNfbG9jaywgInBm IHJ1bGVzZXRzIik7CiAJc3hfaW5pdCgmcGZfaW9jdGxfbG9jaywgInBmIGlvY3RsIik7Ci0KIAlw Zl9kZXYgPSBtYWtlX2RldigmcGZfY2RldnN3LCAwLCAwLCAwLCAwNjAwLCBQRl9OQU1FKTsKLQlp ZiAoKGVycm9yID0gcGZhdHRhY2goKSkgIT0gMCkKLQkJcmV0dXJuIChlcnJvcik7CisJcGZfbXRh Z19pbml0aWFsaXplKCk7CisgICAgICAgIHBmX2luaXRfZXZlbnRoYW5kbGVycygpOwogCiAJcmV0 dXJuICgwKTsKIH0KQEAgLTM3MzUsNDAgKzM3NzcsOCBAQAogc3RhdGljIGludAogcGZfdW5sb2Fk KHZvaWQpCiB7Ci0JaW50IGVycm9yID0gMDsKIAotCVZfcGZfc3RhdHVzLnJ1bm5pbmcgPSAwOwot CXN3aV9yZW1vdmUoVl9wZl9zd2lfY29va2llKTsKLQllcnJvciA9IGRlaG9va19wZigpOwotCWlm IChlcnJvcikgewotCQkvKgotCQkgKiBTaG91bGQgbm90IGhhcHBlbiEKLQkJICogWFhYIER1ZSB0 byBlcnJvciBjb2RlIEVTUkNILCBrbGR1bmxvYWQgd2lsbCBzaG93Ci0JCSAqIGEgbWVzc2FnZSBs aWtlICdObyBzdWNoIHByb2Nlc3MnLgotCQkgKi8KLQkJcHJpbnRmKCIlcyA6IHBmaWwgdW5yZWdp c3RlcmF0aW9uIGZhaWxcbiIsIF9fRlVOQ1RJT05fXyk7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0J UEZfUlVMRVNfV0xPQ0soKTsKLQlzaHV0ZG93bl9wZigpOwotCVZfcGZfZW5kX3RocmVhZHMgPSAx OwotCXdoaWxlIChWX3BmX2VuZF90aHJlYWRzIDwgMikgewotCQl3YWtldXBfb25lKHBmX3B1cmdl X3RocmVhZCk7Ci0JCXJ3X3NsZWVwKHBmX3B1cmdlX3RocmVhZCwgJnBmX3J1bGVzX2xvY2ssIDAs ICJwZnRtbyIsIDApOwotCX0KLQlwZl9ub3JtYWxpemVfY2xlYW51cCgpOwotCXBmaV9jbGVhbnVw KCk7Ci0JcGZyX2NsZWFudXAoKTsKLQlwZl9vc2ZwX2ZsdXNoKCk7Ci0JcGZfY2xlYW51cCgpOwot CWlmIChJU19ERUZBVUxUX1ZORVQoY3Vydm5ldCkpCi0JCXBmX210YWdfY2xlYW51cCgpOwotCVBG X1JVTEVTX1dVTkxPQ0soKTsKLQlkZXN0cm95X2RldihwZl9kZXYpOwotCXJ3X2Rlc3Ryb3koJnBm X3J1bGVzX2xvY2spOwotCXN4X2Rlc3Ryb3koJnBmX2lvY3RsX2xvY2spOwotCi0JcmV0dXJuIChl cnJvcik7CisJcmV0dXJuICgwKTsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvc3lzL25l dHBmaWwvcGYvcGZfaWYuYyBiL3N5cy9uZXRwZmlsL3BmL3BmX2lmLmMKLS0tIGEvc3lzL25ldHBm aWwvcGYvcGZfaWYuYworKysgYi9zeXMvbmV0cGZpbC9wZi9wZl9pZi5jCkBAIC0xMDMsOSArMTAz LDExIEBACiBzdGF0aWMgVk5FVF9ERUZJTkUoc3RydWN0IHBmaV9saXN0LCBwZmlfdW5saW5rZWRf a2lmcyk7CiAjZGVmaW5lCVZfcGZpX3VubGlua2VkX2tpZnMJVk5FVChwZmlfdW5saW5rZWRfa2lm cykKIHN0YXRpYyBzdHJ1Y3QgbXR4IHBmaV91bmxua2RraWZzX210eDsKK01UWF9TWVNJTklUKHBm aV91bmxua2RraWZzX210eCwgJnBmaV91bmxua2RraWZzX210eCwgInBmIHVubGlua2VkIGludGVy ZmFjZXMiLAorICAgIE1UWF9ERUYpOwogCiB2b2lkCi1wZmlfaW5pdGlhbGl6ZSh2b2lkKQorcGZp X3ZuZXRfaW5pdGlhbGl6ZSh2b2lkKQogewogCXN0cnVjdCBpZmdfZ3JvdXAgKmlmZzsKIAlzdHJ1 Y3QgaWZuZXQgKmlmcDsKQEAgLTExNSw4ICsxMTcsNiBAQAogCVZfcGZpX2J1ZmZlciA9IG1hbGxv YyhWX3BmaV9idWZmZXJfbWF4ICogc2l6ZW9mKCpWX3BmaV9idWZmZXIpLAogCSAgICBQRklfTVRZ UEUsIE1fV0FJVE9LKTsKIAotCW10eF9pbml0KCZwZmlfdW5sbmtka2lmc19tdHgsICJwZiB1bmxp bmtlZCBpbnRlcmZhY2VzIiwgTlVMTCwgTVRYX0RFRik7Ci0KIAlraWYgPSBtYWxsb2Moc2l6ZW9m KCpraWYpLCBQRklfTVRZUEUsIE1fV0FJVE9LKTsKIAlQRl9SVUxFU19XTE9DSygpOwogCVZfcGZp X2FsbCA9IHBmaV9raWZfYXR0YWNoKGtpZiwgSUZHX0FMTCk7CkBAIC0xMjMsMTYgKzEyMywyNCBA QAogCVBGX1JVTEVTX1dVTkxPQ0soKTsKIAogCUlGTkVUX1JMT0NLKCk7Ci0JVEFJTFFfRk9SRUFD SChpZmcsICZWX2lmZ19oZWFkLCBpZmdfbmV4dCkKKwlUQUlMUV9GT1JFQUNIKGlmZywgJlZfaWZn X2hlYWQsIGlmZ19uZXh0KSB7CiAJCXBmaV9hdHRhY2hfaWZncm91cChpZmcpOwotCVRBSUxRX0ZP UkVBQ0goaWZwLCAmVl9pZm5ldCwgaWZfbGluaykKKwl9CisJVEFJTFFfRk9SRUFDSChpZnAsICZW X2lmbmV0LCBpZl9saW5rKSB7CisJCUNVUlZORVRfU0VUKGlmcC0+aWZfdm5ldCk7CiAJCXBmaV9h dHRhY2hfaWZuZXQoaWZwKTsKKwkJQ1VSVk5FVF9SRVNUT1JFKCk7CisJfQogCUlGTkVUX1JVTkxP Q0soKTsKK30KIAordm9pZAorcGZfaW5pdF9ldmVudGhhbmRsZXJzKHZvaWQpIHsKKwogCXBmaV9h dHRhY2hfY29va2llID0gRVZFTlRIQU5ETEVSX1JFR0lTVEVSKGlmbmV0X2Fycml2YWxfZXZlbnQs Ci0JICAgIHBmaV9hdHRhY2hfaWZuZXRfZXZlbnQsIE5VTEwsIEVWRU5USEFORExFUl9QUklfQU5Z KTsKKwkgICAgcGZpX2F0dGFjaF9pZm5ldF9ldmVudCwgY3Vydm5ldCwgRVZFTlRIQU5ETEVSX1BS SV9BTlkpOwogCXBmaV9kZXRhY2hfY29va2llID0gRVZFTlRIQU5ETEVSX1JFR0lTVEVSKGlmbmV0 X2RlcGFydHVyZV9ldmVudCwKLQkgICAgcGZpX2RldGFjaF9pZm5ldF9ldmVudCwgTlVMTCwgRVZF TlRIQU5ETEVSX1BSSV9BTlkpOworCSAgICBwZmlfZGV0YWNoX2lmbmV0X2V2ZW50LCBjdXJ2bmV0 LCBFVkVOVEhBTkRMRVJfUFJJX0FOWSk7CiAJcGZpX2F0dGFjaF9ncm91cF9jb29raWUgPSBFVkVO VEhBTkRMRVJfUkVHSVNURVIoZ3JvdXBfYXR0YWNoX2V2ZW50LAogCSAgICBwZmlfYXR0YWNoX2dy b3VwX2V2ZW50LCBjdXJ2bmV0LCBFVkVOVEhBTkRMRVJfUFJJX0FOWSk7CiAJcGZpX2NoYW5nZV9n cm91cF9jb29raWUgPSBFVkVOVEhBTkRMRVJfUkVHSVNURVIoZ3JvdXBfY2hhbmdlX2V2ZW50LApA QCAtMTQwLDEzICsxNDgsMTEgQEAKIAlwZmlfZGV0YWNoX2dyb3VwX2Nvb2tpZSA9IEVWRU5USEFO RExFUl9SRUdJU1RFUihncm91cF9kZXRhY2hfZXZlbnQsCiAJICAgIHBmaV9kZXRhY2hfZ3JvdXBf ZXZlbnQsIGN1cnZuZXQsIEVWRU5USEFORExFUl9QUklfQU5ZKTsKIAlwZmlfaWZhZGRyX2V2ZW50 X2Nvb2tpZSA9IEVWRU5USEFORExFUl9SRUdJU1RFUihpZmFkZHJfZXZlbnQsCi0JICAgIHBmaV9p ZmFkZHJfZXZlbnQsIE5VTEwsIEVWRU5USEFORExFUl9QUklfQU5ZKTsKKwkgICAgcGZpX2lmYWRk cl9ldmVudCwgY3Vydm5ldCwgRVZFTlRIQU5ETEVSX1BSSV9BTlkpOwogfQogCiB2b2lkCi1wZmlf Y2xlYW51cCh2b2lkKQotewotCXN0cnVjdCBwZmlfa2lmICpwOworcGZfdW5pbml0X2V2ZW50aGFu ZGxlcnModm9pZCkgewogCiAJRVZFTlRIQU5ETEVSX0RFUkVHSVNURVIoaWZuZXRfYXJyaXZhbF9l dmVudCwgcGZpX2F0dGFjaF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGlmbmV0 X2RlcGFydHVyZV9ldmVudCwgcGZpX2RldGFjaF9jb29raWUpOwpAQCAtMTU0LDcgKzE2MCwxMyBA QAogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGdyb3VwX2NoYW5nZV9ldmVudCwgcGZpX2NoYW5n ZV9ncm91cF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVSKGdyb3VwX2RldGFjaF9l dmVudCwgcGZpX2RldGFjaF9ncm91cF9jb29raWUpOwogCUVWRU5USEFORExFUl9ERVJFR0lTVEVS KGlmYWRkcl9ldmVudCwgcGZpX2lmYWRkcl9ldmVudF9jb29raWUpOworfQogCit2b2lkCitwZmlf Y2xlYW51cCh2b2lkKQoreworCXN0cnVjdCBwZmlfa2lmICpwOworCiAJVl9wZmlfYWxsID0gTlVM TDsKIAl3aGlsZSAoKHAgPSBSQl9NSU4ocGZpX2lmaGVhZCwgJlZfcGZpX2lmcykpKSB7CiAJCVJC X1JFTU9WRShwZmlfaWZoZWFkLCAmVl9wZmlfaWZzLCBwKTsKQEAgLTE2Niw4ICsxNzgsNiBAQAog CQlmcmVlKHAsIFBGSV9NVFlQRSk7CiAJfQogCi0JbXR4X2Rlc3Ryb3koJnBmaV91bmxua2RraWZz X210eCk7Ci0KIAlmcmVlKFZfcGZpX2J1ZmZlciwgUEZJX01UWVBFKTsKIH0KIApAQCAtODEzLDkg KzgyMyw3IEBACiBwZmlfYXR0YWNoX2dyb3VwX2V2ZW50KHZvaWQgKmFyZyAsIHN0cnVjdCBpZmdf Z3JvdXAgKmlmZykKIHsKIAotCUNVUlZORVRfU0VUKChzdHJ1Y3Qgdm5ldCAqKWFyZyk7CiAJcGZp X2F0dGFjaF9pZmdyb3VwKGlmZyk7Ci0JQ1VSVk5FVF9SRVNUT1JFKCk7CiB9CiAKIHN0YXRpYyB2 b2lkCkBAIC04MjUsMTMgKzgzMywxMSBAQAogCiAJa2lmID0gbWFsbG9jKHNpemVvZigqa2lmKSwg UEZJX01UWVBFLCBNX1dBSVRPSyk7CiAKLQlDVVJWTkVUX1NFVCgoc3RydWN0IHZuZXQgKilhcmcp OwogCVBGX1JVTEVTX1dMT0NLKCk7CiAJVl9wZmlfdXBkYXRlKys7CiAJa2lmID0gcGZpX2tpZl9h dHRhY2goa2lmLCBnbmFtZSk7CiAJcGZpX2tpZl91cGRhdGUoa2lmKTsKIAlQRl9SVUxFU19XVU5M T0NLKCk7Ci0JQ1VSVk5FVF9SRVNUT1JFKCk7CiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQg YS9zeXMvbmV0cGZpbC9wZi9wZi5jIGIvc3lzL25ldHBmaWwvcGYvcGYuYwotLS0gYS9zeXMvbmV0 cGZpbC9wZi9wZi5jCisrKyBiL3N5cy9uZXRwZmlsL3BmL3BmLmMKQEAgLTE1MSw2ICsxNTEsNyBA QAogI2RlZmluZQlWX3BmX3NlbmRxdWV1ZQlWTkVUKHBmX3NlbmRxdWV1ZSkKIAogc3RhdGljIHN0 cnVjdCBtdHggcGZfc2VuZHF1ZXVlX210eDsKK01UWF9TWVNJTklUKHBmX3NlbmRxdWV1ZV9tdHgs ICZwZl9zZW5kcXVldWVfbXR4LCAicGYgc2VuZCBxdWV1ZSIsIE1UWF9ERUYpOwogI2RlZmluZQlQ Rl9TRU5EUV9MT0NLKCkJCW10eF9sb2NrKCZwZl9zZW5kcXVldWVfbXR4KQogI2RlZmluZQlQRl9T RU5EUV9VTkxPQ0soKQltdHhfdW5sb2NrKCZwZl9zZW5kcXVldWVfbXR4KQogCkBAIC0xNzIsMTEg KzE3MywxNiBAQAogI2RlZmluZQlWX3BmX292ZXJsb2FkdGFzawlWTkVUKHBmX292ZXJsb2FkdGFz aykKIAogc3RhdGljIHN0cnVjdCBtdHggcGZfb3ZlcmxvYWRxdWV1ZV9tdHg7CitNVFhfU1lTSU5J VChwZl9vdmVybG9hZHF1ZXVlX210eCwgJnBmX292ZXJsb2FkcXVldWVfbXR4LAorICAgICJwZiBv dmVybG9hZC9mbHVzaCBxdWV1ZSIsIE1UWF9ERUYpOworCiAjZGVmaW5lCVBGX09WRVJMT0FEUV9M T0NLKCkJbXR4X2xvY2soJnBmX292ZXJsb2FkcXVldWVfbXR4KQogI2RlZmluZQlQRl9PVkVSTE9B RFFfVU5MT0NLKCkJbXR4X3VubG9jaygmcGZfb3ZlcmxvYWRxdWV1ZV9tdHgpCiAKIFZORVRfREVG SU5FKHN0cnVjdCBwZl9ydWxlcXVldWUsIHBmX3VubGlua2VkX3J1bGVzKTsKIHN0cnVjdCBtdHgg cGZfdW5sbmtkcnVsZXNfbXR4OworTVRYX1NZU0lOSVQocGZfdW5sbmtkcnVsZXNfbXR4LCAmcGZf dW5sbmtkcnVsZXNfbXR4LCAicGYgdW5saW5rZWQgcnVsZXMiLAorICAgIE1UWF9ERUYpOwogCiBz dGF0aWMgVk5FVF9ERUZJTkUodW1hX3pvbmVfdCwJcGZfc291cmNlc196KTsKICNkZWZpbmUJVl9w Zl9zb3VyY2VzX3oJVk5FVChwZl9zb3VyY2VzX3opCkBAIC03NDksNyArNzU1LDcgQEAKIAogLyog UGVyLXZuZXQgZGF0YSBzdG9yYWdlIHN0cnVjdHVyZXMgaW5pdGlhbGl6YXRpb24uICovCiB2b2lk Ci1wZl9pbml0aWFsaXplKCkKK3BmX3ZuZXRfaW5pdGlhbGl6ZSgpCiB7CiAJc3RydWN0IHBmX2tl eWhhc2gJKmtoOwogCXN0cnVjdCBwZl9pZGhhc2gJKmloOwpAQCAtODA5LDEzICs4MTUsOSBAQAog CVNUQUlMUV9JTklUKCZWX3BmX3NlbmRxdWV1ZSk7CiAJU0xJU1RfSU5JVCgmVl9wZl9vdmVybG9h ZHF1ZXVlKTsKIAlUQVNLX0lOSVQoJlZfcGZfb3ZlcmxvYWR0YXNrLCAwLCBwZl9vdmVybG9hZF90 YXNrLCBjdXJ2bmV0KTsKLQltdHhfaW5pdCgmcGZfc2VuZHF1ZXVlX210eCwgInBmIHNlbmQgcXVl dWUiLCBOVUxMLCBNVFhfREVGKTsKLQltdHhfaW5pdCgmcGZfb3ZlcmxvYWRxdWV1ZV9tdHgsICJw ZiBvdmVybG9hZC9mbHVzaCBxdWV1ZSIsIE5VTEwsCi0JICAgIE1UWF9ERUYpOwogCiAJLyogVW5s aW5rZWQsIGJ1dCBtYXkgYmUgcmVmZXJlbmNlZCBydWxlcy4gKi8KIAlUQUlMUV9JTklUKCZWX3Bm X3VubGlua2VkX3J1bGVzKTsKLQltdHhfaW5pdCgmcGZfdW5sbmtkcnVsZXNfbXR4LCAicGYgdW5s aW5rZWQgcnVsZXMiLCBOVUxMLCBNVFhfREVGKTsKIH0KIAogdm9pZApAQCAtODU4LDEwICs4NjAs NiBAQAogCQlmcmVlKHBmc2UsIE1fUEZURU1QKTsKIAl9CiAKLQltdHhfZGVzdHJveSgmcGZfc2Vu ZHF1ZXVlX210eCk7Ci0JbXR4X2Rlc3Ryb3koJnBmX292ZXJsb2FkcXVldWVfbXR4KTsKLQltdHhf ZGVzdHJveSgmcGZfdW5sbmtkcnVsZXNfbXR4KTsKLQogCXVtYV96ZGVzdHJveShWX3BmX3NvdXJj ZXNfeik7CiAJdW1hX3pkZXN0cm95KFZfcGZfc3RhdGVfeik7CiAJdW1hX3pkZXN0cm95KFZfcGZf c3RhdGVfa2V5X3opOwpAQCAtMTQ0OCw3ICsxNDQ2LDYgQEAKIAkJCVBGX1JVTEVTX1JMT0NLKCk7 CiAJCQlWX3BmX2VuZF90aHJlYWRzKys7CiAJCQlQRl9SVUxFU19SVU5MT0NLKCk7Ci0JCQl3YWtl dXAocGZfcHVyZ2VfdGhyZWFkKTsKIAkJCWtwcm9jX2V4aXQoMCk7CiAJCX0KIAkJUEZfUlVMRVNf UlVOTE9DSygpOwpkaWZmIC0tZ2l0IGEvc3lzL25ldC9wZnZhci5oIGIvc3lzL25ldC9wZnZhci5o Ci0tLSBhL3N5cy9uZXQvcGZ2YXIuaAorKysgYi9zeXMvbmV0L3BmdmFyLmgKQEAgLTE0OTQsNyAr MTQ5NCw5IEBACiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmX3J1bGVxdWV1ZSwgcGZfdW5saW5rZWRf cnVsZXMpOwogI2RlZmluZQlWX3BmX3VubGlua2VkX3J1bGVzCVZORVQocGZfdW5saW5rZWRfcnVs ZXMpCiAKLXZvaWQJCQkJIHBmX2luaXRpYWxpemUodm9pZCk7Cit2b2lkCQkJCSBwZl9pbml0X2V2 ZW50aGFuZGxlcnModm9pZCk7Cit2b2lkCQkJCSBwZl91bmluaXRfZXZlbnRoYW5kbGVycyh2b2lk KTsKK3ZvaWQJCQkJIHBmX3ZuZXRfaW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQJCQkJIHBmX210YWdf aW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQJCQkJIHBmX210YWdfY2xlYW51cCh2b2lkKTsKIHZvaWQJ CQkJIHBmX2NsZWFudXAodm9pZCk7CkBAIC0xNTkwLDcgKzE1OTIsNyBAQAogCSAgICBzdHJ1Y3Qg cGZfYWRkciAqLCBzYV9mYW1pbHlfdCk7CiBpbnQJcGZfbWF0Y2hfcG9ydCh1X2ludDhfdCwgdV9p bnQxNl90LCB1X2ludDE2X3QsIHVfaW50MTZfdCk7CiAKLXZvaWQJcGZfbm9ybWFsaXplX2luaXQo dm9pZCk7Cit2b2lkCXBmX3ZuZXRfbm9ybWFsaXplX2luaXQodm9pZCk7CiB2b2lkCXBmX25vcm1h bGl6ZV9jbGVhbnVwKHZvaWQpOwogaW50CXBmX25vcm1hbGl6ZV90Y3AoaW50LCBzdHJ1Y3QgcGZp X2tpZiAqLCBzdHJ1Y3QgbWJ1ZiAqLCBpbnQsIGludCwgdm9pZCAqLAogCSAgICBzdHJ1Y3QgcGZf cGRlc2MgKik7CkBAIC0xNjQ4LDcgKzE2NTAsNyBAQAogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZmlf a2lmICosCQkgcGZpX2FsbCk7CiAjZGVmaW5lCVZfcGZpX2FsbAkgCQkgVk5FVChwZmlfYWxsKQog Ci12b2lkCQkgcGZpX2luaXRpYWxpemUodm9pZCk7Cit2b2lkCQkgcGZpX3ZuZXRfaW5pdGlhbGl6 ZSh2b2lkKTsKIHZvaWQJCSBwZmlfY2xlYW51cCh2b2lkKTsKIHZvaWQJCSBwZmlfa2lmX3JlZihz dHJ1Y3QgcGZpX2tpZiAqKTsKIHZvaWQJCSBwZmlfa2lmX3VucmVmKHN0cnVjdCBwZmlfa2lmICop OwoK --b1_f4a650d973dfb525651b66d498237b50-- From owner-freebsd-net@FreeBSD.ORG Fri May 8 17:35:40 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3D0261B1 for ; Fri, 8 May 2015 17:35:40 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 27E6B17ED for ; Fri, 8 May 2015 17:35:40 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t48HZeGx034329 for ; Fri, 8 May 2015 17:35:40 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199174] em tx and rx hang Date: Fri, 08 May 2015 17:35:39 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: david.keller@litchis.fr X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 May 2015 17:35:40 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199174 --- Comment #14 from david.keller@litchis.fr --- (In reply to Sean Bruno from comment #11) Sean, can you provide iperf command lines you used ? -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Fri May 8 17:42:37 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CD21C46F for ; Fri, 8 May 2015 17:42:37 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B821A1960 for ; Fri, 8 May 2015 17:42:37 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t48HgbZl043548 for ; Fri, 8 May 2015 17:42:37 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 199174] em tx and rx hang Date: Fri, 08 May 2015 17:42:37 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.1-STABLE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: sbruno@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-net@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 May 2015 17:42:37 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199174 --- Comment #15 from Sean Bruno --- (In reply to david.keller from comment #14) Nothing fancy here. Server runs "iperf -p 8000 -s" (8core amd box) Client under test runs this forever: #!/bin/sh FILE=test.out if [ -f ${FILE} ]; then rm $FILE; fi while [ 1 ]; do date; iperf -p 8000 -c 192.168.100.1 -t 600 -P ${1} >> $FILE; done -- You are receiving this mail because: You are the assignee for the bug. From owner-freebsd-net@FreeBSD.ORG Sat May 9 21:29:55 2015 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 116B3F8D for ; Sat, 9 May 2015 21:29:55 +0000 (UTC) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F084A1567 for ; Sat, 9 May 2015 21:29:54 +0000 (UTC) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.14.9/8.14.9) with ESMTP id t49LTstu013397 for ; Sat, 9 May 2015 21:29:54 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-net@FreeBSD.org Subject: [Bug 192599] zero window and persist timer not set Date: Sat, 09 May 2015 21:29:55 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 9.2-STABLE X-Bugzilla-Keywords: patch X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: hiren@FreeBSD.org X-Bugzilla-Status: In Progress X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: hiren@FreeBSD.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: assigned_to Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 May 2015 21:29:55 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192599 Hiren Panchasara changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|freebsd-net@FreeBSD.org |hiren@FreeBSD.org --- Comment #4 from Hiren Panchasara --- I think this should be committed. -- You are receiving this mail because: You are the assignee for the bug.