# Vrfs

Module for working with EOS VRF resources

The Vrfs resource provides configuration of VRF resources for an EOS node.

param name: | The name parameter maps to the VRF name in EOS. Valid values include any consecutive sequence of numbers, letters and underscore up to the maximum number of characters. This parameter is defaultable.
type name: | string
param description:
| The vrf description set by the user
type description:
| string
param ipv4_routing:
| Tells whether IPv4 routing is enabled on the VRF
type ipv4_routing:
| bool
param ipv6_routing:
| Tells whether IPv6 unicast routing is enabled on the VRF
type ipv6_routing:
| bool

class `pyeapi.api.vrfs.``Vrfs`(node)

  Bases: `pyeapi.api.abstract.EntityCollection`

  The Vrfs class provides a configuration resource for VRFs

  The Vrfs class is derived from ResourceBase a standard set of methods for working with VRF configurations on an EOS node.

  `configure_vrf`(vrf_name, commands)

    Configures the specified VRF using commands

    Parameters:

    - vrf_name (str) – The VRF name to configure
    - commands – The list of commands to configure

    Returns: | True if the commands completed successfully

  `create`(vrf_name, rd=None)

    Creates a new VRF resource

    Note: A valid RD has the following format admin_ID:local_assignment.
      The admin_ID can be an AS number or globally assigned IPv4 address. The local_assignment can be an integer between 0-65,535 if the admin_ID is an IPv4 address and can be between 0-4,294,967,295 if the admin_ID is an AS number. If the admin_ID is an AS number the local_assignment could also be in the form of an IPv4 address.

    Parameters:

    - vrf_name (str) – The VRF name to create
    - rd (str) – The value to configure the vrf rd

    Returns: | True if create was successful otherwise False

  `default`(vrf_name)

    Defaults the VRF configuration for given name

    Parameters: | vrf_name (str) – The VRF name to default
    Returns: | True if the operation was successful otherwise False

  `delete`(vrf_name)

    Deletes a VRF from the running configuration

    Parameters: | vrf_name (str) – The VRF name to delete
    Returns: | True if the operation was successful otherwise False

  `get`(value)

    Returns the VRF configuration as a resource dict.

    Parameters: | value (string) – The vrf name to retrieve from the running configuration.

    Returns:

    A Python dict object containing the VRF attributes as
      key/value pairs.

  `getall`()

    Returns a dict object of all VRFs in the running-config

    Returns: | A dict object of VRF attributes

  `set_description`(vrf_name, description=None, default=False, disable=False)

    Configures the VRF description

    Parameters:

    - vrf_name (str) – The VRF name to configure
    - description (str) – The string to set the vrf description to
    - default (bool) – Configures the vrf description to its default value
    - disable (bool) – Negates the vrf description

    Returns: | True if the operation was successful otherwise False

  `set_interface`(vrf_name, interface, default=False, disable=False)

    Adds a VRF to an interface

    Notes

    Requires interface to be in routed mode. Must apply ip address after VRF has been applied. This feature can also be accessed through the interfaces api.

    Parameters:

    - vrf_name (str) – The VRF name to configure
    - interface (str) – The interface to add the VRF too
    - default (bool) – Set interface VRF forwarding to default
    - disable (bool) – Negate interface VRF forwarding

    Returns: | True if the operation was successful otherwise False

  `set_ipv4_routing`(vrf_name, default=False, disable=False)

    Configures ipv4 routing for the vrf

    Parameters:

    - vrf_name (str) – The VRF name to configure
    - default (bool) – Configures ipv4 routing for the vrf value to default if this value is true
    - disable (bool) – Negates the ipv4 routing for the vrf if set to true

    Returns: | True if the operation was successful otherwise False

  `set_ipv6_routing`(vrf_name, default=False, disable=False)

    Configures ipv6 unicast routing for the vrf

    Parameters:

    - vrf_name (str) – The VRF name to configure
    - default (bool) – Configures ipv6 unicast routing for the vrf value to default if this value is true
    - disable (bool) – Negates the ipv6 unicast routing for the vrf if set to true

    Returns: | True if the operation was successful otherwise False

  `set_rd`(vrf_name, rd)

    Configures the VRF rd (route distinguisher)

    Note: A valid RD has the following format admin_ID:local_assignment.
      The admin_ID can be an AS number or globally assigned IPv4 address. The local_assignment can be an integer between 0-65,535 if the admin_ID is an IPv4 address and can be between 0-4,294,967,295 if the admin_ID is an AS number. If the admin_ID is an AS number the local_assignment could also be in the form of an IPv4 address.

    Parameters:

    - vrf_name (str) – The VRF name to set rd for
    - rd (str) – The value to configure the vrf rd

    Returns: | True if the operation was successful otherwise False

`pyeapi.api.vrfs.``instance`(node)

  Returns an instance of Vrfs

  This method will create and return an instance of the Vrfs object passing the value of API to the object. The instance method is required for the resource to be autoloaded by the Node object

  Parameters: | node (Node) – The node argument passes an instance of Node to the resource