Re: [netconf] Pullback tcp-client-server also?

"Scharf, Michael" <Michael.Scharf@hs-esslingen.de> Fri, 22 March 2024 06:51 UTC

Return-Path: <Michael.Scharf@hs-esslingen.de>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 33ED9C14F61E for <netconf@ietfa.amsl.com>; Thu, 21 Mar 2024 23:51:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.104
X-Spam-Level:
X-Spam-Status: No, score=-7.104 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, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=hs-esslingen.de
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nO1ziK8G49e4 for <netconf@ietfa.amsl.com>; Thu, 21 Mar 2024 23:51:08 -0700 (PDT)
Received: from mail.hs-esslingen.de (mail.hs-esslingen.de [134.108.32.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E4029C14F6E9 for <netconf@ietf.org>; Thu, 21 Mar 2024 23:51:04 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.hs-esslingen.de (Postfix) with ESMTP id 7EB3425A2E; Fri, 22 Mar 2024 07:51:01 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.9.1 mail.hs-esslingen.de 7EB3425A2E
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hs-esslingen.de; s=20240206; t=1711090262; bh=l7khd8KQjPif6TNuiYDYXKZ8Ymujc8qEUp9cjCwkD9k=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=XNHcrX5g3NS5ATTk7sEtDStc8E2/68B6TT12Bh9phr/s8DR9Ksd1pxIVKm8I82i1B d7rtX1ZAvlBaXlcWJU1FIGtoaxSykkmEj4JoM8PmJUN6H+Iu3n70qLfjMHM4/2Ns9L kEkg+W/h1hkCcSxAxPnTQEuMkl1l2MFEBEF0d/tgbn6jQdn3u5R25KFeCIeSOAzfyX EPAyi47NBV2zLYMqDzjkFnRu2fn9elcgL4uBMRDtHfFyzHydEyd3dNkAx2RCpBcVZ7 3n5CWQJv55PRCxxrtJvOsXeO3lnRZL8ikfw/pxvmlmvezNXUT60Z3Csf3bjy6ouTVT XaFrDX7sbgCLQ==
X-Virus-Scanned: by amavisd-new-2.7.1 (20120429) (Debian) at hs-esslingen.de
Received: from mail.hs-esslingen.de ([127.0.0.1]) by localhost (hs-esslingen.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wG-ExHOMMc8l; Fri, 22 Mar 2024 07:50:59 +0100 (CET)
Received: from rznt8202.rznt.rzdir.fht-esslingen.de (rznt8202.hs-esslingen.de [134.108.48.165]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.hs-esslingen.de (Postfix) with ESMTPS; Fri, 22 Mar 2024 07:50:58 +0100 (CET)
Received: from rznt8202.rznt.rzdir.fht-esslingen.de (134.108.48.165) by rznt8202.rznt.rzdir.fht-esslingen.de (134.108.48.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.37; Fri, 22 Mar 2024 07:50:58 +0100
Received: from rznt8202.rznt.rzdir.fht-esslingen.de ([fe80::aca4:171a:3ee1:57e0]) by rznt8202.rznt.rzdir.fht-esslingen.de ([fe80::aca4:171a:3ee1:57e0%3]) with mapi id 15.01.2507.037; Fri, 22 Mar 2024 07:50:58 +0100
From: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
To: "mohamed.boucadair@orange.com" <mohamed.boucadair@orange.com>, "Joe Clarke (jclarke)" <jclarke=40cisco.com@dmarc.ietf.org>, Mahesh Jethanandani <mjethanandani@gmail.com>
CC: Netconf <netconf@ietf.org>
Thread-Topic: [netconf] Pullback tcp-client-server also?
Thread-Index: AQHaej+QrR4uzp44Ekm8RH6d0US5tLE/kuCAgAAK2ACAABgaAIAAAg8AgAADcYCAAAScgIAABlqAgAAAy4CAABHeAIAClBBwgABBvQCAAKVLQA==
Date: Fri, 22 Mar 2024 06:50:58 +0000
Message-ID: <20eb59023fb7402588bbab80b4f01a51@hs-esslingen.de>
References: <DU2PR02MB10160D45D1B097E0402C81F5D88332@DU2PR02MB10160.eurprd02.prod.outlook.com> <0100018e59548770-0e565cea-5193-4074-80f9-4f2430d18a9c-000000@email.amazonses.com> <DU2PR02MB1016043201C524611C0E4385188332@DU2PR02MB10160.eurprd02.prod.outlook.com> <A675AC8B-443A-4077-8F75-BF9B786C4EE8@gmail.com> <DU2PR02MB101607BDA6356F05B5C9A8F5F88332@DU2PR02MB10160.eurprd02.prod.outlook.com> <BN9PR11MB537185CD3B8C1077D117F74AB8332@BN9PR11MB5371.namprd11.prod.outlook.com> <d159c0db876941bb9dbc996f5a3df0d2@hs-esslingen.de> <DU2PR02MB10160A5F1827B28ED1C57085688322@DU2PR02MB10160.eurprd02.prod.outlook.com>
In-Reply-To: <DU2PR02MB10160A5F1827B28ED1C57085688322@DU2PR02MB10160.eurprd02.prod.outlook.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [134.108.48.169]
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_004E_01DA7C2D.AB3FAB20"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/V78AmZmXU0DmpSHx7Fe-CgKyZXM>
Subject: Re: [netconf] Pullback tcp-client-server also?
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Mar 2024 06:51:13 -0000

Hi Med,

 

I agree that reusable structures make sense. 

 

This is why I try to understand whether draft-ietf-netconf-tcp-client-server could use the same structure like draft-ietf-tcpm-yang-tcp.

 

As far as I understand so far, there may be two challenges in this discussion:

 

-        A TCP listener (server) that supports dual-stack (i.e., 0.0.0.0 and ::)

 

-        A server application that listens on multiple different IP addresses (other than 0.0.0.0 and ::, possibly with different AF), which might require separate sockets when the sockets API is used

 

Please let me know if this is a misunderstanding.

 

The latter may be relevant for a service model, but AFAIK the network stack considers this as separate TCP listeners.

 

MIchael

 

From: mohamed.boucadair@orange.com <mohamed.boucadair@orange.com> 
Sent: Thursday, March 21, 2024 10:52 PM
To: Scharf, Michael <Michael.Scharf@hs-esslingen.de>; Joe Clarke (jclarke) <jclarke=40cisco.com@dmarc.ietf.org>; Mahesh Jethanandani <mjethanandani@gmail.com>
Cc: Netconf <netconf@ietf.org>
Subject: RE: [netconf] Pullback tcp-client-server also?

 

Hi Michael, 

 

> At first sight, this leaf can model the example below. Or do I miss something?

 

It can be modeled in draft-ietf-tcpm-yang-tcp because you have a list indexed per AF:

 

==

       list tcp-listeners {

         key "type address port";

         config false;

 

         description

           "A table containing information about a particular

            TCP listener.";

 

         leaf type {

           type inet:ip-version;

           description

             "The address type of address.  The value

              should be unspecified (0) if connection initiations

              to all local IP addresses are accepted.";

         }

==

 

The common model does not have that. The point was to have a reusable structure that would capture typical combinations, including when the structure is used in upper layers (service and network models).

 

Cheers,

Med

 

De : Scharf, Michael <Michael.Scharf@hs-esslingen.de <mailto:Michael.Scharf@hs-esslingen.de> > 
Envoyé : vendredi 22 mars 2024 03:10
À : Joe Clarke (jclarke) <jclarke=40cisco.com@dmarc.ietf.org <mailto:jclarke=40cisco.com@dmarc.ietf.org> >; BOUCADAIR Mohamed INNOV/NET <mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com> >; Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com> >
Cc : Netconf <netconf@ietf.org <mailto:netconf@ietf.org> >
Objet : RE: [netconf] Pullback tcp-client-server also?

 

Hi all,

 

Sorry for chiming in late. This week I am very busy in my day job.

 

I still try to fully understand the problem while catching up. I apologize if I miss something.

 

To start with, I’d like to highlight that at first sight draft-ietf-tcpm-yang-tcp has to solve a similar problem.

 

Well, draft-ietf-netconf-tcp-client-server is more about the application view, whereas draft-ietf-tcpm-yang-tcp is about the stack-internal view. But they are related, and draft-ietf-tcpm-yang-tcp waits in the RFC editor queue…

 

In draft-ietf-tcpm-yang-tcp, the solution for a TCP listener (i.e., server) is:

 

     leaf address {

        type union {

          type inet:ip-address;

          type string {

            length 0;

          }

        }

        description

          "The local IP address for this TCP connection.

 

           The value of this node can be represented in three

           possible ways, depending on the characteristics of the

           listening application:

 

           1. For an application willing to accept both IPv4 and

              IPv6 datagrams, the value of this node must be

              ''h (a zero-length octet-string), with the value

              of the corresponding 'type' object being

              unspecified (0).

 

           2. For an application willing to accept only IPv4 or

              IPv6 datagrams, the value of this node must be

              '0.0.0.0' or '::' respectively, with

              'type' representing the appropriate address type.

 

           3. For an application which is listening for data

              destined only to a specific IP address, the value

              of this node is the specific local address, with

              'type' representing the appropriate address type.";

      }

 

This solution also supports dual-stack. As far as I recall, there was some discussion on how to model dual-stack, and this is what we ended up with.

 

At first sight, this leaf can model the example below. Or do I miss something?

 

Thanks

 

Michael

 

 

 

From: netconf <netconf-bounces@ietf.org <mailto:netconf-bounces@ietf.org> > On Behalf Of Joe Clarke (jclarke)
Sent: Wednesday, March 20, 2024 3:34 AM
To: mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com> ; Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com> >
Cc: Netconf <netconf@ietf.org <mailto:netconf@ietf.org> >
Subject: Re: [netconf] Pullback tcp-client-server also?

 

As I thought about this more and consider Med’s DHC example, I kept coming back to how services are defined in a UNIX /etc/services file.  In Med’s example, DHCPv4 and DHCPv6 each have different services for client and server.  If I were implementing the “tcp-server-grouping” for a given service on a host, a leaf-list would be sufficient (as I’d have two different daemons or at least two different config blocks for v4 and v6).

 

However, Med is making the point that if this was to be implemented at a controller or higher abstraction level he wants to offer a “DHC” service as a single entity.  In this case, he’d like to have all DHC-capabilities under one service config (albeit that is more of an example for UDP server).

 

Concretely, I think he is proposing something like the attached snippet (Med, correct me if I’m wrong).  In this case, if I had an SSH server as an example that used different ports for different address families I would have (in XML):

 

<tcp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-server">

  <local-bind>

    <local-address>0.0.0.0</local-address>

    <local-port>22</local-port>

    <keepalives>

      <idle-time>7200</idle-time>

      <max-probes>9</max-probes>

      <probe-interval>75</probe-interval>

    </keepalives>

  </local-bind>

  <local-bind>

    <local-address>::</local-address>

    <local-port>22022</local-port>

    <keepalives>

      <idle-time>7200</idle-time>

      <max-probes>9</max-probes>

      <probe-interval>75</probe-interval>

    </keepalives>

  </local-bind>

</tcp-server>

 

Yes, this adds complexity in order to get more flexibility, but you can still do the same ports for a given server such as:

 

<tcp-server xmlns="urn:ietf:params:xml:ns:yang:ietf-tcp-server">

  <local-bind>

    <local-address>0.0.0.0</local-address>

    <local-port>22</local-port>

    <keepalives>

      <idle-time>7200</idle-time>

      <max-probes>9</max-probes>

      <probe-interval>75</probe-interval>

    </keepalives>

  </local-bind>

  <local-bind>

    <local-address>::</local-address>

    <local-port>22</local-port>

    <keepalives>

      <idle-time>7200</idle-time>

      <max-probes>9</max-probes>

      <probe-interval>75</probe-interval>

    </keepalives>

  </local-bind>

</tcp-server>

 

 

  Joe

 

From: netconf <netconf-bounces@ietf.org <mailto:netconf-bounces@ietf.org> > on behalf of mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com>  <mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com> >
Date: Tuesday, March 19, 2024 at 21:31
To: Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com> >
Cc: Netconf <netconf@ietf.org <mailto:netconf@ietf.org> >
Subject: Re: [netconf] Pullback tcp-client-server also?

Re, 

 

Yes.

 

Cheers,

Med

 

De : Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com> > 
Envoyé : mercredi 20 mars 2024 11:27
À : BOUCADAIR Mohamed INNOV/NET <mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com> >
Cc : Kent Watsen <kent+ietf@watsen.net <mailto:kent+ietf@watsen.net> >; Netconf <netconf@ietf.org <mailto:netconf@ietf.org> >
Objet : Re: [netconf] Pullback tcp-client-server also?

 

Hi Med,

 

 

On Mar 20, 2024, at 11:04 AM, mohamed.boucadair@orange.com <mailto:mohamed.boucadair@orange.com>  wrote:

 

Re-,

 

As Joe rightfully mentioned, running different instances is likely to happen at the device level. For that case, the leaf-list approach is just fine. 

 

Now, when the model is reused in upper layers (network or service models), that would not be sufficient. Think about a DHC service model which hides the internal of the service (whether this is dhcp or dhcpv6) but simply needs to expose where the dhc service is enabled: distinct ports are required for that case.

 

[mj] So a list of local-address and local-port?

 

Cheers.

 

 

Cheers,

Med

 

De : Kent Watsen < <mailto:kent+ietf@watsen.net> kent+ietf@watsen.net> 
Envoyé : mercredi 20 mars 2024 10:48
À : BOUCADAIR Mohamed INNOV/NET < <mailto:mohamed.boucadair@orange.com> mohamed.boucadair@orange.com>
Cc : Joe Clarke (jclarke) < <mailto:jclarke@cisco.com> jclarke@cisco.com>; Rob Wilton (rwilton) < <mailto:rwilton@cisco.com> rwilton@cisco.com>;  <mailto:netconf@ietf.org> netconf@ietf.org
Objet : Re: [netconf] Pullback tcp-client-server also?

 

Hi Med,

 

Do you mean a list of “local-address + local-port” tuples?

 

Can you post a concrete proposal?

 

K. 

 

 

On Mar 20, 2024, at 10:36 AM,  <mailto:mohamed.boucadair@orange.com> mohamed.boucadair@orange.com wrote:

 

Re-,

 

This would address the first cases I mentioned, but not the third one.

 

At least some narrative text is needed to explain the intended use of distinct port per AF. A cleaner approach would to model this is as a list keyed per AF.

 

Cheers,

Med

 

De : Kent Watsen < <mailto:kent+ietf@watsen.net> kent+ietf@watsen.net> 
Envoyé : mercredi 20 mars 2024 10:29
À : Joe Clarke (jclarke) < <mailto:jclarke@cisco.com> jclarke@cisco.com>
Cc : BOUCADAIR Mohamed INNOV/NET < <mailto:mohamed.boucadair@orange.com> mohamed.boucadair@orange.com>; Rob Wilton (rwilton) < <mailto:rwilton@cisco.com> rwilton@cisco.com>;  <mailto:netconf@ietf.org> netconf@ietf.org
Objet : Re: [netconf] Pullback tcp-client-server also?

 

Thanks Med and Joe.  I had a sidebar with Rob and Mahesh, and we’re going to do this update in Auth48.  

 

Let us (the WG) agree on the exact change.  

  1) change ‘leaf’ to ‘leaf-list’

  2) tweak the ‘description’ to say that it’s a list

  

Anything else?  Do we need to disallow shadows?  (e.g., two wildcards)

 

K. 

 

 

On Mar 20, 2024, at 9:02 AM, Joe Clarke (jclarke) < <mailto:jclarke@cisco.com> jclarke@cisco.com> wrote:

 

I agree with Med.  Your description is an either/or, but one server might do something like:

 

tcp46      0      0 *.9100                 *.*                    LISTEN <== Listen on all v4 and v6 addresses

 

Or:

 

tcp4       0      0 127.0.0.1.25           *.*                    LISTEN <==Listen on just v4 on an explicit address

 

Or:

 

tcp6       0      0 ::1.25   *.*                              LISTEN <== Listen on just v6 on an explicit address

 

In the first case, I’d think you’d at least need a leaf-list to hold both 0.0.0.0 and ::.  In the second two cases, you’d want this service to have a leaf list for 127.0.0.1 and ::1.

 

Joe

 

From: netconf < <mailto:netconf-bounces@ietf.org> netconf-bounces@ietf.org> on behalf of <mailto:mohamed.boucadair@orange.com> mohamed.boucadair@orange.com< <mailto:mohamed.boucadair@orange.com> mohamed.boucadair@orange.com>
Date: Tuesday, March 19, 2024 at 18:23
To: Kent Watsen < <mailto:kent+ietf@watsen.net> kent+ietf@watsen.net>, Rob Wilton (rwilton) < <mailto:rwilton@cisco.com> rwilton@cisco.com>
Cc:  <mailto:netconf@ietf.org> netconf@ietf.org < <mailto:netconf@ietf.org> netconf@ietf.org>
Subject: Re: [netconf] Pullback tcp-client-server also?

Hi Kent, all,

 

When I initially raised the issue for the UDP grouping, I had in mind any, IPv4/IPv6 explicit address bindings, and eventually listening on distinct port numbers per AF. Given this is a reusable model, these cases should be all covered.

 

Cheers,

Med

 

De : netconf < <mailto:netconf-bounces@ietf.org> netconf-bounces@ietf.org> De la part deKent Watsen
Envoyé : mercredi 20 mars 2024 06:54
À : Rob Wilton < <mailto:rwilton@cisco.com> rwilton@cisco.com>
Cc :  <mailto:netconf@ietf.org> netconf@ietf.org
Objet : [netconf] Pullback tcp-client-server also?

 

Rob, Netconf, 

 

Regarding support for “dual-stack”, do we need to convert from a “leaf” to a “leaf-list”?

 

Please note that the existing text says that a wildcard card may be used to bind to all addresses:

 

leaf local-address {
      type inet:ip-address;
      mandatory true;
      description
        "The local IP address to listen on for incoming
         TCP client connections.  INADDR_ANY (0.0.0.0) or
         INADDR6_ANY (0:0:0:0:0:0:0:0 a.k.a. ::) MUST be
         used when the server is to listen on all IPv4 or
         IPv6 address.";
    }

 

Good enough?

 

Kent 

 

____________________________________________________________________________________________________________
Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
 
This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.

____________________________________________________________________________________________________________
Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
 
This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.

____________________________________________________________________________________________________________
Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
 
This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.

_______________________________________________
netconf mailing list
 <mailto:netconf@ietf.org> netconf@ietf.org
 <https://www.ietf.org/mailman/listinfo/netconf> https://www.ietf.org/mailman/listinfo/netconf

 


Mahesh Jethanandani

mjethanandani@gmail.com <mailto:mjethanandani@gmail.com> 

 

 

 

 

 

____________________________________________________________________________________________________________
Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
 
This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.