huawei-tftpc

Trivial file transfer protocol (TFTP) client.

  • Version: 2019-05-03

    huawei-tftpc@2019-05-03


    
      module huawei-tftpc {
    
        yang-version 1;
    
        namespace "urn:huawei:yang:huawei-tftpc";
    
        prefix tftpc;
    
        import huawei-pub-type {
          prefix pub-type;
        }
        import ietf-inet-types {
          prefix inet;
        }
        import huawei-extension {
          prefix ext;
        }
        import huawei-acl {
          prefix acl;
        }
    
        organization
          "Huawei Technologies Co., Ltd.";
    
        contact
          "Huawei Industrial Base
         Bantian, Longgang
         Shenzhen 518129
         People's Republic of China
         Website: http://www.huawei.com
         Email: support@huawei.com";
    
        description
          "Trivial file transfer protocol (TFTP) client.";
    
        revision "2019-05-03" {
          description "Initial revision.";
          reference
            "Huawei private.";
    
        }
    
        ext:task-name "tftp-client";
    
        typedef trans-cmd-type {
          type enumeration {
            enum "put" {
              value 2;
              description
                "Upload the local file to the remote server.";
            }
            enum "get" {
              value 1;
              description
                "Download a file from the remote server to the client.";
            }
          }
          description
            "TFTP client transfer command type.";
        }
    
        container tftpc {
          description
            "Trivial file transfer protocol (TFTP) client.";
          container client {
            description
              "Configure TFTP client configuration table.";
            leaf src-ipv4-addr {
              when "not(../src-interface)";
              type inet:ipv4-address-no-zone;
              description
                "Specify the source IPv4 address.";
            }
    
            leaf src-ipv6-addr {
              type inet:ipv6-address-no-zone;
              description
                "Specify the source IPv6 address.";
            }
    
            leaf src-ipv6-vpn-instance-name {
              when "../src-ipv6-addr";
              type string {
                length "1..31";
              }
              description
                "The specified VPN instance must exist and IPv6-family must be enabled in the VPN instance.";
            }
    
            leaf src-interface {
              type pub-type:if-name;
              description
                "Specify the source interface name. The specified source interface must exist and an IP address must be configured on the interface.";
            }
    
            leaf ipv4-acl {
              type leafref {
                path "/acl:acl/acl:groups/acl:group/acl:identity";
              }
              must
                "/acl:acl/acl:groups/acl:group[acl:identity=current()]/acl:type='basic'";
              description
                "Specify the IPv4 ACL number.";
            }
    
            leaf ipv6-acl {
              type leafref {
                path "/acl:acl/acl:group6s/acl:group6/acl:identity";
              }
              must
                "/acl:acl/acl:group6s/acl:group6[acl:identity=current()]/acl:type='basic'";
              description
                "Specify the IPv6 ACL number.";
            }
          }  // container client
        }  // container tftpc
    
        rpc tftpc-transfer-file {
          description
            "TFTP client file transfer.";
          input {
            leaf source-ipv4-address {
              type inet:ipv4-address-no-zone;
              must "../server-ipv4-address";
              description
                "Specify the source IPv4 address to transfer files.";
            }
    
            leaf server-ipv4-address {
              type string {
                length "1..255";
              }
              must "not(../server-ipv6-address)";
              description
                "Specify the server IPv4 address or server hostname for file transfer.";
            }
    
            leaf source-ipv6-address {
              type inet:ipv6-address-no-zone;
              must "../server-ipv6-address";
              description
                "Specify the source IPv4 address to transfer files.";
            }
    
            leaf server-ipv6-address {
              type string {
                length "1..255";
              }
              description
                "Specify the server IPv6 address or server hostname for file transfer.";
            }
    
            leaf local-file-name {
              type string {
                length "1..128";
              }
              description
                "Specify the local file name for transfer.";
            }
    
            leaf remote-file-name {
              type string {
                length "1..128";
              }
              description
                "Specify the remote file name. The server uses the file to store received data.";
            }
    
            leaf command-type {
              type trans-cmd-type;
              description
                "Specify the type of the operation to be performed.";
            }
    
            leaf vpn-name {
              type string {
                length "1..31";
              }
              must
                "(../server-ipv4-address) and not(../public-net) and not(../source-interface-name)";
              description
                "Specify the VPN instance name for connection to the server.";
            }
    
            leaf ipv6-vpn-name {
              type string {
                length "1..31";
              }
              must
                "(../server-ipv6-address) and not(../public-net) and not(../source-interface-name)";
              description
                "Specify the IPv6 VPN instance name for connection to the server.";
            }
    
            leaf public-net {
              type boolean;
              description
                "Using public net or not.";
            }
    
            leaf source-interface-name {
              type pub-type:if-name;
              must "not(../public-net)";
              description
                "Specify the source interface name for file transfer.";
            }
          }
        }  // rpc tftpc-transfer-file
      }  // module huawei-tftpc
    

© 2023 YumaWorks, Inc. All rights reserved.