From owner-freebsd-transport@freebsd.org Thu Sep 24 21:31:21 2020 Return-Path: Delivered-To: freebsd-transport@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16CD43E1300 for ; Thu, 24 Sep 2020 21:31:21 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: from mailman.nyi.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 4By7X861yBz4GTm for ; Thu, 24 Sep 2020 21:31:20 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: by mailman.nyi.freebsd.org (Postfix) id CEBFD3E11C8; Thu, 24 Sep 2020 21:31:20 +0000 (UTC) Delivered-To: transport@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE70F3E11C7; Thu, 24 Sep 2020 21:31:20 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4By7X75s31z4GTk; Thu, 24 Sep 2020 21:31:19 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: by mail-ed1-x52f.google.com with SMTP id n22so403356edt.4; Thu, 24 Sep 2020 14:31:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=LdCnm6q1g7D0XBrVPT4bkrKJhrdEJsch/+JMOvzmD2w=; b=V89lipM1OWZPuuEDd8K+viQoDlfQWNO+2fxi82LUtSAPzvrbdxF9jUTu24CaW4A2VM LDFuAhRCk3VrtsKDv5T79FVD3k/O6Dv7BL74b4b7Ocb490ZilMqa5L/sLKU+zC9Rkf1T 5PAXMCvLHFdrW8rCKFQ126AA1vhQCy1MQbT1MWVDpilni65IZlnZvXPc/8UtgXyG2qBS dQi1J5/3puwxM3eqg8oZuCsdrPwNWi7oTNl8Rl8CKs9961WLcmWDMv27crFK+mgbT0jt riYE+1ibC5EvdAdUexyHm5/YaBpjC85d7hQ16lk9wPJo9lh8N44PidueSi42a21SwkRT 08sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=LdCnm6q1g7D0XBrVPT4bkrKJhrdEJsch/+JMOvzmD2w=; b=QkTj8j4dm83Baui005i8ArVuPfUqJT0dyxA2Rf+LHVuUR16xM+CNA5Nq4R5BB3L55k /xeKuEpL5gevTwMsWl9wdqrnyv/hrto6akyovMtV+Nj9907+jsmBZKHGcXSwGx41ygbr 747MF06QDalvDDUowkmwV+ZP80sDpz9gbm2z9IKnLBNDuzhpvcz6YTRRNT4DmetMDxbd 4byZXo2fc+rwC+mvt1g6MjVC4hEJi9KVG9tj+B7rwScCYhg5TnHCVy2lHf2N/xNHWjxV KedelnHTM9JlUHJbleLVx+AAtoYaNfwShOYPd2TBAIT4mGR4XIQRo40zm5G/iqneXygj fWMg== X-Gm-Message-State: AOAM532053aVtQC4NELcVTp+UBtcFW83A3UI+5qQJNJbg+ZFZR72BOvf Z6iNRXfPL9G9OAWnicXRc4AxnXaQ69tC2glXGO2OCesq X-Google-Smtp-Source: ABdhPJyRVMXsZz0ETCGeQhgtuQU7yyDHSF/X8DiWzdai7xHoWsKefptWbgbPtWCgW+PZZWtppIWBeSKnVln8ehQ2h88= X-Received: by 2002:aa7:d15a:: with SMTP id r26mr779818edo.181.1600983078339; Thu, 24 Sep 2020 14:31:18 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ryan Stone Date: Thu, 24 Sep 2020 17:31:07 -0400 Message-ID: Subject: Re: Socket option to configure Ethernet PCP / CoS per-flow To: "Scheffenegger, Richard" Cc: "net@FreeBSD.org" , "transport@freebsd.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 4By7X75s31z4GTk X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=V89lipM1; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of rysto32@gmail.com designates 2a00:1450:4864:20::52f as permitted sender) smtp.mailfrom=rysto32@gmail.com X-Spamd-Result: default: False [-2.88 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; NEURAL_SPAM_SHORT(0.13)[0.132]; NEURAL_HAM_LONG(-1.00)[-0.995]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::52f:from]; NEURAL_HAM_MEDIUM(-1.02)[-1.016]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; MAILMAN_DEST(0.00)[net,transport]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-BeenThere: freebsd-transport@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Discussions of transport level network protocols in FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Sep 2020 21:31:21 -0000 On Fri, Sep 11, 2020 at 12:33 PM Scheffenegger, Richard wrote: > > Hi, > > Currently, upstream head has only an IOCTL API to set up interface-wide d= efault PCP marking: > > #define SIOCGVLANPCP SIOCGLANPCP /* Get VLAN PCP */ > #define SIOCSVLANPCP SIOCSLANPCP /* Set VLAN PCP */ > > And the interface is via ifconfig pcp . > > However, while this allows all traffic sent via a specific interface to b= e marked with a PCP (priority code point), it defeats the purpose of PFC (p= riority flow control) which works by individually pausing different queues = of an interface, provided there is an actual differentiation of traffic int= o those various classes. > > Internally, we have added a socket option (SO_VLAN_PCP) to change the PCP= specifically for traffic associated with that socket, to be marked differe= ntly from whatever the interface default is (unmarked, or the default PCP). > > Does the community see value in having such a socket option widely availa= ble? (Linux currently doesn't seem to have a per-socket option either, only= a per-interface IOCTL API). > > Best regards, > > Richard Scheffenegger > > _______________________________________________ > freebsd-transport@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-transport > To unsubscribe, send any mail to "freebsd-transport-unsubscribe@freebsd.o= rg" Hi Richard, At $WORK we're running into situations where PFC support would be very useful, so I think that this would be a good thing to add. I have a question: does your work also communicate the priority value for an mbuf down to the Ethernet driver, so that it can put the packet in the proper queue? From owner-freebsd-transport@freebsd.org Thu Sep 24 22:40:18 2020 Return-Path: Delivered-To: freebsd-transport@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C9DC83E2D1A for ; Thu, 24 Sep 2020 22:40:18 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org [IPv6:2610:1c1:1:606c::50:13]) by mx1.freebsd.org (Postfix) with ESMTP id 4By93k3Wkvz4L3W for ; Thu, 24 Sep 2020 22:40:18 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) Received: by mailman.nyi.freebsd.org (Postfix) id 78CEB3E2D18; Thu, 24 Sep 2020 22:40:18 +0000 (UTC) Delivered-To: transport@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7880E3E2A51; Thu, 24 Sep 2020 22:40:18 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2076.outbound.protection.outlook.com [40.107.220.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4By93h0zkHz4LBP; Thu, 24 Sep 2020 22:40:15 +0000 (UTC) (envelope-from Richard.Scheffenegger@netapp.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lI24AJZvLPXv/VB3BpEOowSpk+MBP6rWussMONEgXQQJx1dWZ8fPXkctq1U6G0P2hX4lu5qvmOu14U6UocGZvwDfdJXwFvj+thwyBtZErm46yuMpMKD3LtoDs8YUGIML+MJ1dxXAaRMVkZMnrxXyiFnfrMKZovUPlLkoToPwxhuUXQuhGBNdkyonExbYUAsntKN3iPIp4WktkdsO4DKYeaakv+l+yy1mPrfGcLp+oe5xXDtQECJfHnTGrYHeI34PQCrJPPldKOIgZL8UsQV1ao1bxqRHg6gAxql8V5cjK/tZvSJLxtC2/v9Iu6q3iJQKtf0x5BTMU4ZWUnDFt+fycA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u2NxWyKDtvrxfa3SkAN0UKglXXRplrNL/Aslo4Q6O1s=; b=LV+ajTBb+X4ihvtfax35RFfQI3M2I+9HTS0URY388o2ownL2NZf+JT9daHzBMFZCk9lcWKl7FaWXL9JRinJBSUuf4CjtMxLD9gkEQUOt0HvLM70FP/SxiNYZ74tCDOZVwg9aGRtSx/nvinL90nNzP5P/gtQMJQUk1c6IZ9hY2Ma8EI9x7xbVF3XjKmhHZfB8gaeFVPmIj65xbUN/Fu6QgYAlN8gTnIWQuWG/q/eTPRMiJ6ZpLXW0KYSLZy5lRc+BFhj/3Uz0sz3X+ugEZMS1dsn3kVo9bTLig/pN+R3qG9JfZc73xPuerPE6aiATNqKJKxphz5t5bDFfA5vV0GKbzw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=netapp.com; dmarc=pass action=none header.from=netapp.com; dkim=pass header.d=netapp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netapp.onmicrosoft.com; s=selector1-netapp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u2NxWyKDtvrxfa3SkAN0UKglXXRplrNL/Aslo4Q6O1s=; b=0uageEEc+M/k6Nss/JElqB4v9g9IFK+XToftXfi1xq3H51WE31NIzj6i7zQHacs5frQONWTTIjbYfxlKuktV0Jq6DT9LO2e6pKb27mrpDInRZTtRYApotPBa/RCpmB6Br2jNwmaz8b4bNOpzhyfa6v4cx0EgnaoDOZnoc8PKlVs= Received: from SN4PR0601MB3728.namprd06.prod.outlook.com (2603:10b6:803:51::24) by SN6PR06MB4976.namprd06.prod.outlook.com (2603:10b6:805:c0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.14; Thu, 24 Sep 2020 22:40:13 +0000 Received: from SN4PR0601MB3728.namprd06.prod.outlook.com ([fe80::84a9:fc74:7eed:ca3a]) by SN4PR0601MB3728.namprd06.prod.outlook.com ([fe80::84a9:fc74:7eed:ca3a%7]) with mapi id 15.20.3370.019; Thu, 24 Sep 2020 22:40:13 +0000 From: "Scheffenegger, Richard" To: Ryan Stone CC: "net@FreeBSD.org" , "transport@freebsd.org" Subject: RE: Socket option to configure Ethernet PCP / CoS per-flow Thread-Topic: Socket option to configure Ethernet PCP / CoS per-flow Thread-Index: AdaIV6Ig8St2MdM0SrW3cDX5AzmWpwKYmEeAAAImM8A= Date: Thu, 24 Sep 2020 22:40:13 +0000 Message-ID: References: In-Reply-To: Accept-Language: de-AT, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [185.236.167.136] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 83990cf8-0781-4ebe-5a8b-08d860dacd10 x-ms-traffictypediagnostic: SN6PR06MB4976: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bjnWPDmaEW6RnEWAdYdklhmlb5y3k6uQqRlrVmFbOJFiEsfdLfomIK2cDPTG6jlfceklazNMAkWfy210Llm0VGe64Yx8P9Vu67bk5u5hz47F1V8Ken0lNoaKm8TjYO5yljXc/ZKSjE/yBhtj85kGs48WYS9Q5/R1zc39bMFpAfbW3AtTicgGRDgRLSyYdY8F+TnwWSXOwIuUCog8xGhcojyPJSPnP1ht4JL/ULwpXS0s9WtgA0aJ5h8SnFPdvYJx2GZ7HZ03C2s8ABNAJQhvcslk21aACiUxj5pNI1YPYN8Pn2TX2sSq0UIOCLqpvI+GIzdy6kOsKJUdocuCagbCIwWX5DcmTY1e3gLT5245UIu163jOqXsvVI78gB4jYHWq/5hkrkjkCpFhAzlNKQ3+6g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN4PR0601MB3728.namprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(39860400002)(376002)(136003)(346002)(83380400001)(8676002)(53546011)(6506007)(71200400001)(86362001)(66556008)(66446008)(76116006)(7696005)(9686003)(966005)(64756008)(66476007)(55016002)(26005)(66946007)(6916009)(4326008)(33656002)(8936002)(186003)(316002)(5660300002)(54906003)(52536014)(478600001)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: gczbbq0iKMKzFL2SuhfVFtUD9OkvpkUGFF7XvmPnrbQN5DdtvaNSgw+wAizSG/z/ikbLd27MSGznBTh0AJROV0gVJzWcdy7oOz+D1RlhhwQl5G32dx2CuNAgPIhDHUU3fkxe5yUNZiQBsquTcjzzoXVHX5tjLqprno0jUiZdZxf8KIRJc2XF1RyW4/Gl996IkgXmjeGq47JzDxH1+Z4QM5bAHCjEt4jw4dv8SH8i/JSd/2Z3al9eYryoHs8OQzJfj+L0RPjGvgHAX+NAX8hiKTGxBF24UWePWRlqesiSdn3/3iaiDd/m/FVljtPDTcjbqyNxZ3+FN58tFS6Mi9m2ek0633Fh77XDfG6VN7x1FYMTvKuPuYHqo2Pg1yeemfXoVwhD4ZXzk5II6wwcK+8MpQKAoXTR1eHuGlkmYnxRVxVdSJwDq/GbY3qxjzqmbLozuBqWkxVfzvNtMIBxsr0VJppDeKHcjNABSB9vZVlZRx9hJhuwf4v+RqTyXlhg6L+AahB3Pu/5ANz9XtjqZWcoNaoNCfiP4MWehgyVmqCm+5pzDDI+dXPvjTzAee/rmvVR2peg4bqbjK0pkmi1BZt2XC9QdpBjzs51al64xQRlHZLkBKDgmHw64WBjpIlnxWVhjDCucyMHV/xascJL1a0n5A== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: netapp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN4PR0601MB3728.namprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83990cf8-0781-4ebe-5a8b-08d860dacd10 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Sep 2020 22:40:13.1183 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4b0911a0-929b-4715-944b-c03745165b3a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: R7NtXlJWS3IHslqM69L298gerWL0a+lMENfjRhsQQ1F9SAfppVBdXizrV+TgA+rHXEf3g13FafKGNiYGKOWccQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR06MB4976 X-Rspamd-Queue-Id: 4By93h0zkHz4LBP X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=netapp.onmicrosoft.com header.s=selector1-netapp-onmicrosoft-com header.b=0uageEEc; dmarc=none; spf=pass (mx1.freebsd.org: domain of Richard.Scheffenegger@netapp.com designates 40.107.220.76 as permitted sender) smtp.mailfrom=Richard.Scheffenegger@netapp.com X-Spamd-Result: default: False [-3.08 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; HAS_XOIP(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; MIME_BASE64_TEXT_BOGUS(1.00)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[netapp.onmicrosoft.com:+]; MIME_BASE64_TEXT(0.10)[]; NEURAL_HAM_SHORT(-0.68)[-0.675]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:40.104.0.0/14, country:US]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; NEURAL_HAM_MEDIUM(-0.99)[-0.985]; R_DKIM_ALLOW(-0.20)[netapp.onmicrosoft.com:s=selector1-netapp-onmicrosoft-com]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_LONG(-1.02)[-1.018]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[netapp.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[40.107.220.76:from]; RWL_MAILSPIKE_POSSIBLE(0.00)[40.107.220.76:from]; MAILMAN_DEST(0.00)[net,transport] X-BeenThere: freebsd-transport@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Discussions of transport level network protocols in FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Sep 2020 22:40:18 -0000 SGkgUnlhbiwNCg0KQXMgeW91IGNhbiBzZWUgaW4gdGhlIGNvZGUsIHdoZW4gYSBzcGVjaWZpYyBQ Q1AgdmFsdWUgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc2Vzc2lvbiwgYSB2bGFuIGhlYWRlciBpcyBh ZGRlZCB0byB0aGUgbWJ1ZiwgYmVmb3JlIGFsbCB0aGF0IGdldHMgaGFuZGVkIG9mZiB0byB0aGUg ZGV2aWNlIGRyaXZlcnMuDQoNCihJIGRpZCBpbXByb3ZlIHVwb24gdGhlICR3b3JrIGNvZGUgYmFz aXMsIGluIGFsbG93aW5nICJkZWZhdWx0IiBhbmQgImV4cGxpY2l0IiBwY3AgdmFsdWVzIC0gcmF0 aGVyIHRoYW4gYXNzdW1pbmcgYW4gdW5kZXJseWluZyBpbnRlcmZhY2Ugd2lsbCBhbHdheXMgaGF2 ZSBhIGRlZmF1bHQgUENQIG9mIDApLg0KDQpJJ20gbm90IHBlcmZlY3RseSBoYXBweSB3aXRoIHRo ZSBwY3AgdmFsdWUgbGl2aW5nIGluIHRoZSBzb2NrZXQgc3RydWN0LCBidXQgZnJhbmtseSwgdGhl cmUgaXMgbm8gbW9yZSBhcHByb3ByaWF0ZSBsYXllciBhbnl3YXksIGFuZCB0aGlzIGFwcHJvYWNo IHNob3VsZCBiZSBwcmV0dHkgc3BlZWQtZWZmaWNpZW50Lg0KDQpJJ20gbm90IGEgaHcgZHJpdmVy IHBlcnNvbiwgc28gd2hhdGV2ZXIgaGFwcGVucyB0byB0aGUgbWJ1ZiBhZnRlciB0aGUgdmxhbiB0 YWcgaXMgYWRkZWQgKGEgcHVyZSBwY3A9eCwgdmxhbj0wIG1heSBiZSBhdHRhY2hlZCkgaXMgYWxs IHVwIHRvIGhvdyB0aGUgZHJpdmVyIC8gaGFyZHdhcmUgZGVhbHMgd2l0aCB0aGF0IGhlYWRlciBh cyBwYXJ0IG9mIHRoZSBtYnVmIGNoYWluLi4uDQoNCkFsc28sIGlmIHlvdSBkbyBoYXZlIGFuIGFj Y291bnQgb24gcmV2aWV3cy5mcmVlYnNkLm9yZywgcGVyaGFwcyB5b3Ugd2FudCB0byBjb21tZW50 IG9uIHRoZSBEaWZmLCB0aGF0IHRoaXMgaXMgdmFsdWFibGUgd29yay4uLiBBcyB0aGlzIGlzIG91 dHNpZGUgbXkgbm9ybWFsIHNjb3BlIG9mIHR3ZWFrcywgSSB3b3VsZCBjZXJ0YWlubHkgbmVlZCBz b21lIHBvc2l0aXZlIHJldmlld3MgYXJvdW5kIHRoaXMgdG8gZ2V0IGl0IGFwcHJvdmVkIGZvciBj b21taXR0aW5nLg0KDQpXZXJlIHlvdSBhYmxlIHRvIHBhdGNoIHlvdSBrZXJuZWwgYW5kIGFjaGll dmUgd2hhdCB5b3Ugd2VyZSB0cnlpbmcgdG8gZG8/DQoNCkRvIHlvdSBzZWUgYW55IHZhbHVlIGlu IGFuIGludGVyZmFjZSBkZWZhdWx0LCB0aGF0IGVmZmVjdGl2ZWx5IGxldHMgZWFjaCBuZXcgc2Vz c2lvbiByb3RhdGUgdGhyb3VnaCBhbGwgUENQcywgdG8gbWFrZSBQRkMgbW9yZSB1c2VmdWwgYW5k IG5vdCBkZWdyYWRlIGludG8gc2ltcGxlIHhvbi94b2ZmICJnbG9iYWwiIGZsb3cgY29udHJvbD8N Cg0KDQpSaWNoYXJkIFNjaGVmZmVuZWdnZXINCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N CkZyb206IFJ5YW4gU3RvbmUgPHJ5c3RvMzJAZ21haWwuY29tPiANClNlbnQ6IERvbm5lcnN0YWcs IDI0LiBTZXB0ZW1iZXIgMjAyMCAyMzozMQ0KVG86IFNjaGVmZmVuZWdnZXIsIFJpY2hhcmQgPFJp Y2hhcmQuU2NoZWZmZW5lZ2dlckBuZXRhcHAuY29tPg0KQ2M6IG5ldEBGcmVlQlNELm9yZzsgdHJh bnNwb3J0QGZyZWVic2Qub3JnDQpTdWJqZWN0OiBSZTogU29ja2V0IG9wdGlvbiB0byBjb25maWd1 cmUgRXRoZXJuZXQgUENQIC8gQ29TIHBlci1mbG93DQoNCk5ldEFwcCBTZWN1cml0eSBXQVJOSU5H OiBUaGlzIGlzIGFuIGV4dGVybmFsIGVtYWlsLiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBh dHRhY2htZW50cyB1bmxlc3MgeW91IHJlY29nbml6ZSB0aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBj b250ZW50IGlzIHNhZmUuDQoNCg0KDQoNCk9uIEZyaSwgU2VwIDExLCAyMDIwIGF0IDEyOjMzIFBN IFNjaGVmZmVuZWdnZXIsIFJpY2hhcmQgPFJpY2hhcmQuU2NoZWZmZW5lZ2dlckBuZXRhcHAuY29t PiB3cm90ZToNCj4NCj4gSGksDQo+DQo+IEN1cnJlbnRseSwgdXBzdHJlYW0gaGVhZCBoYXMgb25s eSBhbiBJT0NUTCBBUEkgdG8gc2V0IHVwIGludGVyZmFjZS13aWRlIGRlZmF1bHQgUENQIG1hcmtp bmc6DQo+DQo+ICNkZWZpbmUgIFNJT0NHVkxBTlBDUCAgICBTSU9DR0xBTlBDUCAgICAgLyogR2V0 IFZMQU4gUENQICovDQo+ICNkZWZpbmUgICBTSU9DU1ZMQU5QQ1AgICAgU0lPQ1NMQU5QQ1AgICAg ICAvKiBTZXQgVkxBTiBQQ1AgKi8NCj4NCj4gQW5kIHRoZSBpbnRlcmZhY2UgaXMgdmlhIGlmY29u ZmlnIDxpZj4gcGNwIDx4Pi4NCj4NCj4gSG93ZXZlciwgd2hpbGUgdGhpcyBhbGxvd3MgYWxsIHRy YWZmaWMgc2VudCB2aWEgYSBzcGVjaWZpYyBpbnRlcmZhY2UgdG8gYmUgbWFya2VkIHdpdGggYSBQ Q1AgKHByaW9yaXR5IGNvZGUgcG9pbnQpLCBpdCBkZWZlYXRzIHRoZSBwdXJwb3NlIG9mIFBGQyAo cHJpb3JpdHkgZmxvdyBjb250cm9sKSB3aGljaCB3b3JrcyBieSBpbmRpdmlkdWFsbHkgcGF1c2lu ZyBkaWZmZXJlbnQgcXVldWVzIG9mIGFuIGludGVyZmFjZSwgcHJvdmlkZWQgdGhlcmUgaXMgYW4g YWN0dWFsIGRpZmZlcmVudGlhdGlvbiBvZiB0cmFmZmljIGludG8gdGhvc2UgdmFyaW91cyBjbGFz c2VzLg0KPg0KPiBJbnRlcm5hbGx5LCB3ZSBoYXZlIGFkZGVkIGEgc29ja2V0IG9wdGlvbiAoU09f VkxBTl9QQ1ApIHRvIGNoYW5nZSB0aGUgUENQIHNwZWNpZmljYWxseSBmb3IgdHJhZmZpYyBhc3Nv Y2lhdGVkIHdpdGggdGhhdCBzb2NrZXQsIHRvIGJlIG1hcmtlZCBkaWZmZXJlbnRseSBmcm9tIHdo YXRldmVyIHRoZSBpbnRlcmZhY2UgZGVmYXVsdCBpcyAodW5tYXJrZWQsIG9yIHRoZSBkZWZhdWx0 IFBDUCkuDQo+DQo+IERvZXMgdGhlIGNvbW11bml0eSBzZWUgdmFsdWUgaW4gaGF2aW5nIHN1Y2gg YSBzb2NrZXQgb3B0aW9uIHdpZGVseSBhdmFpbGFibGU/IChMaW51eCBjdXJyZW50bHkgZG9lc24n dCBzZWVtIHRvIGhhdmUgYSBwZXItc29ja2V0IG9wdGlvbiBlaXRoZXIsIG9ubHkgYSBwZXItaW50 ZXJmYWNlIElPQ1RMIEFQSSkuDQo+DQo+IEJlc3QgcmVnYXJkcywNCj4NCj4gUmljaGFyZCBTY2hl ZmZlbmVnZ2VyDQo+DQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+IGZyZWVic2QtdHJhbnNwb3J0QGZyZWVic2Qub3JnIG1haWxpbmcgbGlzdCANCj4g aHR0cHM6Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtdHJhbnNw b3J0DQo+IFRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJmcmVlYnNkLXRyYW5zcG9y dC11bnN1YnNjcmliZUBmcmVlYnNkLm9yZyINCg0KSGkgUmljaGFyZCwNCg0KQXQgJFdPUksgd2Un cmUgcnVubmluZyBpbnRvIHNpdHVhdGlvbnMgd2hlcmUgUEZDIHN1cHBvcnQgd291bGQgYmUgdmVy eSB1c2VmdWwsIHNvIEkgdGhpbmsgdGhhdCB0aGlzIHdvdWxkIGJlIGEgZ29vZCB0aGluZyB0byBh ZGQuICBJIGhhdmUgYQ0KcXVlc3Rpb246IGRvZXMgeW91ciB3b3JrIGFsc28gY29tbXVuaWNhdGUg dGhlIHByaW9yaXR5IHZhbHVlIGZvciBhbiBtYnVmIGRvd24gdG8gdGhlIEV0aGVybmV0IGRyaXZl ciwgc28gdGhhdCBpdCBjYW4gcHV0IHRoZSBwYWNrZXQgaW4gdGhlIHByb3BlciBxdWV1ZT8NCg==