TFTP
TFTP (Trivial File Transfer Protocol) configuration on IOS-XR manages both client and server behavior per VRF. The client side controls outbound file transfer settings including source interface, retry count, timeout, and DSCP marking. The server side controls inbound file transfer services with independent IPv4 and IPv6 settings for access list filtering, maximum concurrent connections, home directory, and DSCP marking.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”configuration (iosxr.devices)
Section titled “configuration (iosxr.devices)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| tftp | Class | [tftp] | No |
tftp (iosxr.devices.configuration)
Section titled “tftp (iosxr.devices.configuration)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| client | Class | [client] | No | |
| server | Class | [server] | No |
client (iosxr.devices.configuration.tftp)
Section titled “client (iosxr.devices.configuration.tftp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| vrfs | List | [vrfs] | No |
server (iosxr.devices.configuration.tftp)
Section titled “server (iosxr.devices.configuration.tftp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| vrfs | List | [vrfs] | No |
vrfs (iosxr.devices.configuration.tftp.client)
Section titled “vrfs (iosxr.devices.configuration.tftp.client)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| dscp | Any | Choice[af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7, default, ef] or Integer[min: 0, max: 63] or String[Regex: ^.*[\$\%]\{.*$] | No | |
| retries | Integer | min: 0, max: 256 | No | |
| source_interface | String | No | ||
| timeout | Integer | min: 0, max: 256 | No |
vrfs (iosxr.devices.configuration.tftp.server)
Section titled “vrfs (iosxr.devices.configuration.tftp.server)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| ipv4_access_list | String | No | ||
| ipv4_dscp | Any | Choice[af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7, default, ef] or Integer[min: 0, max: 63] or String[Regex: ^.*[\$\%]\{.*$] | No | |
| ipv4_homedir | String | No | ||
| ipv4_max_servers | Any | Choice[no-limit] or Integer[min: 1, max: 2147483647] or String[Regex: ^.*[\$\%]\{.*$] | No | |
| ipv6_access_list | String | No | ||
| ipv6_dscp | Any | Choice[af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs1, cs2, cs3, cs4, cs5, cs6, cs7, default, ef] or Integer[min: 0, max: 63] or String[Regex: ^.*[\$\%]\{.*$] | No | |
| ipv6_homedir | String | No | ||
| ipv6_max_servers | Any | Choice[no-limit] or Integer[min: 1, max: 2147483647] or String[Regex: ^.*[\$\%]\{.*$] | No |
Data Normalization
Section titled “Data Normalization”DSCP and Precedence Values
DSCP and precedence fields accept both numeric and named string values.
dscp: integer0-63or named value (e.g.,ef,af11,cs3)ipv4_dscp/ipv6_dscp: integer0-63or named value (e.g.,ef,af11,cs3)
Both formats can be used interchangeably. The normalization layer automatically converts integer values to their named equivalents before sending to the device, preventing configuration drift.
Example YAML Code:
Section titled “Example YAML Code:”Example-1: Configure TFTP client.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: tftp: client: vrfs: - name: VRF1 source_interface: Loopback0 retries: 10 timeout: 30 dscp: default - name: MGMT source_interface: MgmtEth0/RP0/CPU0/0 retries: 5 timeout: 60Example-2: Configure TFTP server.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: tftp: server: vrfs: - name: VRF1 ipv4_access_list: ACL1 ipv4_max_servers: no-limit ipv4_homedir: "disk0:" ipv4_dscp: 46 ipv6_access_list: ACL1 ipv6_max_servers: no-limit ipv6_homedir: "disk0:" ipv6_dscp: default