Re: [Pals] [mpls] draft-zzhang-intarea-generic-delivery-functions

Haoyu Song <haoyu.song@futurewei.com> Mon, 08 March 2021 02:22 UTC

Return-Path: <haoyu.song@futurewei.com>
X-Original-To: pals@ietfa.amsl.com
Delivered-To: pals@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BC53B3A21E8; Sun, 7 Mar 2021 18:22:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level:
X-Spam-Status: No, score=-1.989 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H2=-0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=futurewei.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 76RrI8Rp2vUi; Sun, 7 Mar 2021 18:21:58 -0800 (PST)
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2103.outbound.protection.outlook.com [40.107.92.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3F1053A21E6; Sun, 7 Mar 2021 18:21:58 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gT7+7d7fwfk44yz6qjFxxB0P+pX+DMGcwxmnhlsND59iHTiT9awXo78JSjNbNTNZLBFSlgyfCNtBo+4+zvR11uXHXAlJFAOsHnEdTGn8I08YA30qBq4edXiJRt2q/njez1gzkcDXw+I2vA6v2ZNWk4KGAyGBV8eKflKw1uL1CTnrn0dWrre+4O8VYa0k/nOk08GFE4oB68qczVCIXqOWfmdGUG67isi5ruzQuRIk9BTRiOuWNedpBJMYRznDl9MV+jQ1w1lXMbLrN9XsCPvpkCc3K3MUhex8fLkce9W3LP0TuKRfMlfHlY6h/b7osTxUbJZPQDubktuNjnCvQfrN4A==
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=glY3KfE+BzQWoVvvRoeue0afplGz1M1zTJIT8wNeMHE=; b=TqHNHOquBz7Snti1e2tjwU9g3OsrqHFMw2sO8v4Uwqt6mrDtIzBsCOIDFkvJIWmhsEpJjph9udN1SFFEUwgMo+us8cD4N30hano8ZIB0E3jJ23t7O8JwbmXE0f2yW6yeg75xN8t24kuOJ65cUYUUspXu87gqGKlCCsIPbbo3mLIGlOw1Diz8ZTARlX9HuKlEbypRx4nl/kJoV3h2Oz0b0vGv26oSWWMmVl2+qpLuT8gkdjEIfvSsE0F+mFee7ahTW3lgSSokjRRfjzGISTNgnEqscukEKXP3dZXTqWbf9thgD+G6UO9DV6zKznFeOoP2TeaU0fa6GaHR5Rd+E9VrvA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=futurewei.com; dmarc=pass action=none header.from=futurewei.com; dkim=pass header.d=futurewei.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Futurewei.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=glY3KfE+BzQWoVvvRoeue0afplGz1M1zTJIT8wNeMHE=; b=tXBTy55w4ju56N318E9qjfNIB+j9pZO2BdSe5ZwkNhcSapMusiN0Jq2cUJewpFpUWHxa2DOOLKaSYeKWcOGJRUdQIdrCXWpJSZN6qh7q8MQREpoYX3vtW0dFdjrDizs1oHGnUqp83p3TfzgJslU5n7bnSdsOUZ0SwLfDlf2OZDs=
Received: from DM6PR13MB2762.namprd13.prod.outlook.com (2603:10b6:5:13c::13) by DM5PR13MB0937.namprd13.prod.outlook.com (2603:10b6:3:77::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.9; Mon, 8 Mar 2021 02:21:51 +0000
Received: from DM6PR13MB2762.namprd13.prod.outlook.com ([fe80::cd7c:ab34:e7f7:203e]) by DM6PR13MB2762.namprd13.prod.outlook.com ([fe80::cd7c:ab34:e7f7:203e%6]) with mapi id 15.20.3912.026; Mon, 8 Mar 2021 02:21:50 +0000
From: Haoyu Song <haoyu.song@futurewei.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>, 'mpls' <mpls@ietf.org>, "int-area@ietf.org" <int-area@ietf.org>, "rtg-ads@ietf.org" <rtg-ads@ietf.org>, Ron Bonica <rbonica@juniper.net>, Kireeti Kompella <kireeti@juniper.net>, "pals@ietf.org" <pals@ietf.org>
Thread-Topic: [mpls] draft-zzhang-intarea-generic-delivery-functions
Thread-Index: AQHXC8z+W2s1Rvp/eEOHaoBPs/DXAappkGTggAAfmnCAAADAcIAPmXUAgAAhGhA=
Date: Mon, 08 Mar 2021 02:21:50 +0000
Message-ID: <DM6PR13MB2762F2362447FA66F4C116CE9A939@DM6PR13MB2762.namprd13.prod.outlook.com>
References: <MN2PR05MB59813CFC28F62CC076364991D4AA0@MN2PR05MB5981.namprd05.prod.outlook.com> <F30F0C17-39A6-4D43-AC94-727BC2C9EEC4@gmail.com> <MN2PR05MB59817B1DBD97C4CDEAFF6CDBD4849@MN2PR05MB5981.namprd05.prod.outlook.com> <MN2PR05MB59816A0683CD84266BDB2059D4849@MN2PR05MB5981.namprd05.prod.outlook.com> <F09BD015-3AC2-4A07-9EAE-DCD2DC00D418@gmail.com> <MN2PR05MB5981E6ECADE8A4EACF446C8ED4819@MN2PR05MB5981.namprd05.prod.outlook.com> <ACA96A88-03EF-4BF9-9BB6-24B458148175@gmail.com> <MN2PR05MB598104C61F2C0A862E0A908BD4809@MN2PR05MB5981.namprd05.prod.outlook.com> <MN2PR05MB6623C35CD4D75583F320AD9AC7809@MN2PR05MB6623.namprd05.prod.outlook.com> <60BC74A2-8D94-4011-B77C-3C4830659915@gmail.com> <MN2PR05MB662309742EC653680936A5E2C7809@MN2PR05MB6623.namprd05.prod.outlook.com>, <004301d70bc0$a83263e0$f8972ba0$@olddog.co.uk> <SJ0PR05MB7470EB63D395221807988C47B99E9@SJ0PR05MB7470.namprd05.prod.outlook.com> <DM6PR13MB27622C8B91785C7E4654AF179A9D9@DM6PR13MB2762.namprd13.prod.outlook.com> <DM6PR13MB2762DFC2C659D78A439FFA1A9A9D9@DM6PR13MB2762.namprd13.prod.outlook.com> <DM6PR13MB2762182584B45D5F22B5ED3F9A9D9@DM6PR13MB2762.namprd13.prod.outlook.com> <MN2PR05MB5981DADFBF82EFB53378B6CFD4939@MN2PR05MB5981.namprd05.prod.outlook.com>
In-Reply-To: <MN2PR05MB5981DADFBF82EFB53378B6CFD4939@MN2PR05MB5981.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=True; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2021-02-25T23:12:30.2541544Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ContentBits=0; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Method=Privileged
authentication-results: juniper.net; dkim=none (message not signed) header.d=none;juniper.net; dmarc=none action=none header.from=futurewei.com;
x-originating-ip: [2600:1700:38c4:650:a9b5:3b9:2c14:3108]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9642c439-0552-4214-11b4-08d8e1d8eec7
x-ms-traffictypediagnostic: DM5PR13MB0937:
x-microsoft-antispam-prvs: <DM5PR13MB09378DAE759024F097C871409A939@DM5PR13MB0937.namprd13.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:422;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: wC4kBfSIOc3ECsx+iLEo5owjJv3IyCODPycgTBj8dJhfShc3ejX7bwli26A4dPL6Yn+x+bk5+Wj0z3arG7g/Uo29k4iNxb3wMr5KBI7bCcardJy3HGGt7kYRP8VYV2NO3C3JVZ9Zw3l/G7E050uEoCkWWoYVNlfc6rKAyHhsUxKV2TkTWka1hSwRA9vKPawdvY13LuYvszIi46r/wLJlJNCuiC0Th0+gtUr0VEe2aIxEZiLI8maFxb0ViOL+v/PlkrQVY+dLQEJ3P668cuBDt2m2AOb53a2h1j2Q+VfF0sqlMUoNl5zJ5IC2cYGaXQotkRSWjar49dTJBChaBgd9XwJGHiO7GgJ3G+r39d0I41M+/13evMSoToNAvjsv5uhT7MyyynGbHC5RFR8mj2yE9IuCX6YAkdSj7/SPSV7WngdrMoFw0Yh3dSlcxyQTGcu5/BqTDfiwjPEeC/lqOORq/J71yJ/VW4uXGKrXSr+mymDWuZ8eqYkR5ZTUekyTHeWbCdQdt1UmH9JkK0UjpPJNMvzSl1G+S2e2NQm29CUYCafwvDwYabHPdreu+3s+pgegVWjIiMxPJDhk+ZE8TyOUjRzQ0OZztY8K7/U9ec140gt0lhMOqcfoxf413EB7kGzwn7v/4lJphoPDhB097zwUKQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB2762.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(346002)(396003)(376002)(39830400003)(53546011)(6506007)(33656002)(316002)(9686003)(2906002)(52536014)(5660300002)(966005)(478600001)(7696005)(186003)(66946007)(66476007)(83380400001)(86362001)(166002)(76116006)(110136005)(66556008)(55016002)(64756008)(8936002)(71200400001)(8676002)(9326002)(66446008)(44832011)(41533002); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: GCcCZ/VD9xM25zBnDtkjoohOwyRTCqzyb02V+BByWAxOJ+iKTfGZ2604/ZIDypyb91V5NNtq43qwFP0ePAlVi4QuW1rZvqzRQdu9YWjK5OTv0G2nrGK1DmEU2Ae/UYz51Sz/I9S0Ngc5aKKPCORdaNNWEcdYneeWdG+QbEN4UIw8cPzbPGJqxDMfd6AHArDOCS8PIr5EH1Z3ifabHy8oUbTdCn0xxMoW4/R0l654dhPNyv6oNkz8KHaLKfhBUbYhdRls+2N58JmVfBkEkapUkuVLK2mtXV7rMzFuF+o6FQVTRyhbtFciEY7SIX5xYTO2LJm76+U/Rg+5ho1J4j3rxNIf0CBHFBUUQiSNKDEfYOyUyOWwYT4OIsnt2CVQla7oVRHeCft9uoS7op7yRLMQefLWWw6ZHL92Ug6bmZC07KqDtMtFWif/ifzAxdzwozrOg4I4ISkwg9+NW/2qDCwml4TjPE1dzsgEpZkP8rM+LqB5zY4cfBK2TPi5LkNwcZSeNv3pmnpz4Rn/PvAjIjMvA9uoWHiDmhjsArybOxREgj8F2o0U7q1jjpfQmiVo/Fg13aXQbKa9Cns/AFSaUhKBi5EsrcEHEv1DZb/5bB4/ZBaFVUm79wbXbzL4jpvXRytdk4z6rs2K2h6ybhZI+VaEaRdmrY7NzBuJXPSOaclEV4tOWdtqSOFAnTwqLRjrb2rDsbIECgwcAvCC4826dd9JrpW7kgVwII0s1tn+xcwlUQW9/nrZAYBkRV7kos2UYobdI1OPhMIjmEx+3BLsaFcvLOUgwj9q4WajZnmtuu6WRDpZZvN/DQvZl3QE6JRnEk7L7mMrCvC2t8ykWojy6KgmASjP8rhfymShEJDDSq2ctEIACEbWqOuD8xNSE85S4USdbsKZkmEfkudvlgMQbsCLO1ZN44hCzwrxQCywX4vhYq/lXEE6k9a8iTLWWTuFFpsVvSNP/nE1xpYNYLRiRtM3xsreknchCtkzH40H1oYMH6i0FuZq8BrXHVkKBd3ZGij+iV9ASExZ2QY1w/z7Ojj6EIiidKwMNSVqYI9jHLLL3HG4HxYP6t2DjrrrER2ir+F5yx9OlYdaiiT7K9ZnHFst7lb9ZL/MlM5b0wWDHAdPVN3YELGpE5FqyQ7HC8QKEvmNDrDq4Vd+wfWDsKKIZ6Hj/0QBtzGFtshvFrBKR2b57ius5zfXwgwg+8f/7/NQsbtcSIhEf7PdoUh/lNz1EEOxkw7b+46B7wx3Zmw1F7YQJXg0plNjL9zUyayoA0FFBaLq/IANzTqCUmifFbKppw07D3aM1ABmqKzGsnfhQS1UJHXRbILOSKsFy29nZFApzUC8TWjAUUNUY8BrOo7nRrLFfyvvBWy+Kk6l3QKod9UOHx375KcAeMqqoenCcmu/Z3Oa
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM6PR13MB2762F2362447FA66F4C116CE9A939DM6PR13MB2762namp_"
MIME-Version: 1.0
X-OriginatorOrg: Futurewei.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB2762.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9642c439-0552-4214-11b4-08d8e1d8eec7
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Mar 2021 02:21:50.6015 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 0fee8ff2-a3b2-4018-9c75-3a1d5591fedc
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: OVmDJLUJe3k1uLqJZcY4fIXPSrqXYSFcfUS7aUMp9OxDfU+kGe7B82TGTHoak2PPySq7KQYn9Lm4h6JMJa0f5g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR13MB0937
Archived-At: <https://mailarchive.ietf.org/arch/msg/pals/suwQiRmO4y5N3E1HVNaZMM_Fj0U>
Subject: Re: [Pals] [mpls] draft-zzhang-intarea-generic-delivery-functions
X-BeenThere: pals@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Pseudowire And LDP-enabled Services dicussion list." <pals.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pals>, <mailto:pals-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/pals/>
List-Post: <mailto:pals@ietf.org>
List-Help: <mailto:pals-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pals>, <mailto:pals-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Mar 2021 02:22:01 -0000

Hi Jeffrey,
Yes. Understood. I'm just suggesting a generic method in MPLS to support a stack of functions.
Thanks!
Haoyu

From: Jeffrey (Zhaohui) Zhang <zzhang@juniper.net>
Sent: Sunday, March 7, 2021 4:21 PM
To: Haoyu Song <haoyu.song@futurewei.com>; 'mpls' <mpls@ietf.org>; int-area@ietf.org; rtg-ads@ietf.org; Ron Bonica <rbonica@juniper.net>; Kireeti Kompella <kireeti@juniper.net>; pals@ietf.org
Subject: RE: [mpls] draft-zzhang-intarea-generic-delivery-functions

Hi Haoyu,

I read your draft and my understanding is that it is specifically for MPLS. The intention of GDFH is to apply it for generic functions that can be applied at different layers, including MPLS but not limited to it.

Jeffrey

From: Haoyu Song <haoyu.song@futurewei.com<mailto:haoyu.song@futurewei.com>>
Sent: Thursday, February 25, 2021 9:08 PM
To: 'mpls' <mpls@ietf.org<mailto:mpls@ietf.org>>; int-area@ietf.org<mailto:int-area@ietf.org>; rtg-ads@ietf.org<mailto:rtg-ads@ietf.org>; Ron Bonica <rbonica@juniper.net<mailto:rbonica@juniper.net>>; Kireeti Kompella <kireeti@juniper.net<mailto:kireeti@juniper.net>>; pals@ietf.org<mailto:pals@ietf.org>; Jeffrey (Zhaohui) Zhang <zzhang@juniper.net<mailto:zzhang@juniper.net>>
Subject: RE: [mpls] draft-zzhang-intarea-generic-delivery-functions

[External Email. Be cautious of content]

Hi all,

Just adding a discussion point, we have proposed the concept of extension header to MPLS, so that it can provide a generic way to handle multiple service extension headers.
https://www.ietf.org/archive/id/draft-song-mpls-extension-header-02.txt<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%2Fwww.ietf.org%2Farchive%2Fid%2Fdraft-song-mpls-extension-header-02.txt__%3B!!NEt6yMaO-gk!XarlEYHAbFlJQ0IRmF_jseHaPVVdTOnzPB20jotk9UIwAWUdahfu5gbP6zjXYQJd%24&data=04%7C01%7Chaoyu.song%40futurewei.com%7C0a702cb32e524003f48308d8e1c80eca%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C1%7C637507596652810239%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tmKB%2B6Pz9e5lpe42EE6NvB7715uwLxzIw56Fqhgh9jQ%3D&reserved=0>

Cheers,
Haoyu


From: Int-area <int-area-bounces@ietf.org<mailto:int-area-bounces@ietf.org>> On Behalf Of Kireeti Kompella
Sent: Thursday, February 25, 2021 3:19 PM
To: adrian@olddog.co.uk<mailto:adrian@olddog.co.uk>; 'John E Drake' <jdrake=40juniper.net@dmarc.ietf.org<mailto:jdrake=40juniper.net@dmarc.ietf.org>>; 'Stewart Bryant' <stewart.bryant@gmail.com<mailto:stewart.bryant@gmail.com>>
Cc: 'mpls' <mpls@ietf.org<mailto:mpls@ietf.org>>; int-area@ietf.org<mailto:int-area@ietf.org>; rtg-ads@ietf.org<mailto:rtg-ads@ietf.org>; Ron Bonica <rbonica@juniper.net<mailto:rbonica@juniper.net>>; Kireeti Kompella <kireeti@juniper.net<mailto:kireeti@juniper.net>>; pals@ietf.org<mailto:pals@ietf.org>; 'Jeffrey (Zhaohui) Zhang' <zzhang=40juniper.net@dmarc.ietf.org<mailto:zzhang=40juniper.net@dmarc.ietf.org>>
Subject: Re: [Int-area] [mpls] draft-zzhang-intarea-generic-delivery-functions

Hi Adrian,

I'm all for multiple label stacks (if meaningful).  I had put that in an early version of the FAI bSPL, with a "real end stack" bit for those woke forwarding engines that needed to know.

The hard lesson I take away from those FEs that look at the nibble following the EoS is to make sure it isn't 0x4 or 0x6, not so much that a single label stack is the only viable solution.  So, keep this option alive ....

Cheers,
Kireeti.
From: Adrian Farrel <adrian@olddog.co.uk<mailto:adrian@olddog.co.uk>>
Date: Thursday, February 25, 2021 at 13:53
To: 'John E Drake' <jdrake=40juniper.net@dmarc.ietf.org<mailto:jdrake=40juniper.net@dmarc.ietf.org>>, 'Stewart Bryant' <stewart.bryant@gmail.com<mailto:stewart.bryant@gmail.com>>
Cc: 'mpls' <mpls@ietf.org<mailto:mpls@ietf.org>>, int-area@ietf.org<mailto:int-area@ietf.org> <int-area@ietf.org<mailto:int-area@ietf.org>>, Kireeti Kompella <kireeti@juniper.net<mailto:kireeti@juniper.net>>, Ron Bonica <rbonica@juniper.net<mailto:rbonica@juniper.net>>, rtg-ads@ietf.org<mailto:rtg-ads@ietf.org> <rtg-ads@ietf.org<mailto:rtg-ads@ietf.org>>, pals@ietf.org<mailto:pals@ietf.org> <pals@ietf.org<mailto:pals@ietf.org>>, 'Jeffrey (Zhaohui) Zhang' <zzhang=40juniper.net@dmarc.ietf.org<mailto:zzhang=40juniper.net@dmarc.ietf.org>>
Subject: RE: [mpls] draft-zzhang-intarea-generic-delivery-functions
> Multiple labels, each with the BoS set, was suggested during the MPLS-TP days
> (Niel Harrison, in particular, was a big proponent) but was shot down because it
> would apparently break existing hardware implementations.

Yeah, I was a big fan of that. I even thought it was architecturally the right thing to do for carrying one MPLS service over an MPLS transport. It would have solved many of the MPLS-TP requirements.

But as John says, lots of hardware then (and probably now) sees bottom of stack and starts to sniff the next nibble. Thus, contiguous label stacks and control words were the only viable solution. It took George Swallow a while to beat this into my head.

Cheers,
Adrian




Juniper Business Use Only


Juniper Business Use Only