Skip to main content
A newer release of this product is available.

Network IP interfaces endpoint overview

Contributors

Overview

The following operations are supported:

  • Creation: POST network/ip/interfaces

  • Collection Get: GET network/ip/interfaces

  • Instance Get: GET network/ip/interfaces/{uuid}

  • Instance Patch: PATCH network/ip/interfaces/{uuid}

  • Instance Delete: DELETE network/ip/interfaces/{uuid}

Retrieving network interface information

The IP interfaces GET API retrieves and displays relevant information pertaining to the interfaces configured in the cluster. The response can contain a list of multiple interfaces or a specific interface. The fields returned in the response vary for different interfaces and configurations.

Examples

Retrieving all interfaces in the cluster

The following example shows the list of all interfaces configured in a cluster.


# The API:
/api/network/ip/interfaces

# The call:
curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces" -H "accept: application/hal+json"

# The response:
{
"records": [
  {
    "uuid": "14531286-59fc-11e8-ba55-005056b4340f",
    "name": "user-cluster-01_mgmt1",
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/14531286-59fc-11e8-ba55-005056b4340f"
      }
    }
  },
  {
    "uuid": "145318ba-59fc-11e8-ba55-005056b4340f",
    "name": "user-cluster-01_clus2",
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/145318ba-59fc-11e8-ba55-005056b4340f"
      }
    }
  },
  {
    "uuid": "14531e45-59fc-11e8-ba55-005056b4340f",
    "name": "user-cluster-01_clus1",
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/14531e45-59fc-11e8-ba55-005056b4340f"
      }
    }
  },
  {
    "uuid": "245979de-59fc-11e8-ba55-005056b4340f",
    "name": "cluster_mgmt",
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f"
      }
    }
  },
  {
    "uuid": "c670707c-5a11-11e8-8fcb-005056b4340f",
    "name": "lif1",
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/c670707c-5a11-11e8-8fcb-005056b4340f"
      }
    }
  }
],
"num_records": 5,
"_links": {
  "self": {
    "href": "/api/network/ip/interfaces"
  }
}
}

Retrieving a specific cluster-scoped interface

The following example shows the response when a specific cluster-scoped interface is requested. The system returns an error when there is no interface with the requested UUID. SVM information is not returned for cluster-scoped interfaces.


# The API:
/api/network/ip/interfaces/{uuid}

# The call:
curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f" -H "accept: application/hal+json"

# The response:
{
"uuid": "245979de-59fc-11e8-ba55-005056b4340f",
"name": "cluster_mgmt",
"ip": {
  "address": "10.63.41.6",
  "netmask": "18",
  "family": "ipv4",
},
"enabled": true,
"state": "up",
"scope": "cluster",
"ipspace": {
  "uuid": "114ecfb5-59fc-11e8-ba55-005056b4340f",
  "name": "Default",
  "_links": {
    "self": {
            "href": "/api/network/ipspaces/114ecfb5-59fc-11e8-ba55-005056b4340f"
    }
  }
},
"services": [
  "management_core",
  "management_autosupport",
  "management_access"
],
"location": {
  "is_home": true,
  "auto_revert": false,
  "failover": "broadcast_domain_only",
  "node": {
    "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb",
    "name": "user-cluster-01-a",
    "_links": {
      "self": {
        "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb"
      }
    }
  },
  "port": {
    "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb",
    "name": "e0d",
    "node": {
      "name": "user-cluster-01-a"
    },
    "_links": {
      "self": {
        "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb"
      }
    }
  },
  "home_node": {
    "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb",
    "name": "user-cluster-01-a",
    "_links": {
      "self": {
        "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb"
      }
    }
  },
  "home_port": {
    "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb",
    "name": "e0d",
    "node": {
      "name": "user-cluster-01-a"
    },
    "_links": {
      "self": {
        "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb"
      }
    }
  }
},
"service_policy": {
  "uuid": "9e0f4151-141b-11e9-851e-005056ac1ce0",
  "name": "default-management"
},
"vip": false,
"_links": {
  "self": {
    "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f"
  }
}
}

Retrieving a specific SVM-scoped interface using a filter

The following example shows the response when a specific SVM-scoped interface is requested. The SVM object is only included for SVM-scoped interfaces.


# The API:
/api/network/ip/interfaces

# The call:
curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces?name=lif1?fields=*" -H "accept: application/hal+json"

# The response:
{
"records": [
  {
    "uuid": "c670707c-5a11-11e8-8fcb-005056b4340f",
    "name": "lif1",
    "ip": {
      "address": "10.10.10.11",
      "netmask": "24",
      "family": "ipv4",
    },
    "enabled": true,
    "state": "up",
    "scope": "svm",
    "ipspace": {
      "uuid": "114ecfb5-59fc-11e8-ba55-005056b4340f",
      "name": "Default",
      "_links": {
        "self": {
          "href": "/api/network/ipspaces/114ecfb5-59fc-11e8-ba55-005056b4340f"
        }
      }
    },
    "svm": {
      "uuid": "c2134665-5a11-11e8-8fcb-005056b4340f",
      "name": "user_vs0",
      "_links": {
        "self": {
          "href": "/api/svm/svms/c2134665-5a11-11e8-8fcb-005056b4340f"
        }
      }
    },
    "services": [
      "data_core",
      "data_nfs",
      "data_cifs",
      "data_flexcache"
    ],
    "location": {
      "is_home": true,
      "auto_revert": false,
      "failover": "broadcast_domain_only",
      "node": {
        "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb",
        "name": "user-cluster-01-a",
        "_links": {
          "self": {
            "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb"
          }
        }
      },
      "port": {
        "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb",
        "name": "e0d",
        "node": {
          "name": "user-cluster-01-a"
        },
        "_links": {
          "self": {
            "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb"
          }
        }
      },
      "home_node": {
        "uuid": "c1db2904-1396-11e9-bb7d-005056acfcbb",
        "name": "user-cluster-01-a",
        "_links": {
          "self": {
            "href": "/api/cluster/nodes/c1db2904-1396-11e9-bb7d-005056acfcbb"
          }
        }
      },
      "home_port": {
        "uuid": "c84d5337-1397-11e9-87c2-005056acfcbb",
        "name": "e0d",
        "node": {
          "name": "user-cluster-01-a"
        },
        "_links": {
          "self": {
            "href": "/api/network/ethernet/ports/c84d5337-1397-11e9-87c2-005056acfcbb"
          }
        }
      }
    },
    "service_policy": {
      "uuid": "9e53525f-141b-11e9-851e-005056ac1ce0",
      "name": "default-data-files"
    },
    "vip": false,
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/c670707c-5a11-11e8-8fcb-005056b4340f"
      }
    }
  }
],
"num_records": 1,
"_links": {
  "self": {
    "href": "/api/network/ip/interfaces?name=lif1?fields=*"
  }
}
}

Retrieving specific fields and limiting the output using filters

The following example shows the response when a filter is applied (location.home_port.name=e0a) and only certain fields are requested. Filtered fields are in the output in addition to the default fields and requested fields.


# The API:
/api/network/ip/interfaces

# The call:
curl -X GET "https://<mgmt-ip>/api/network/ip/interfaces?location.home_port.name=e0a&fields=location.home_node.name,service_policy.name,ip.address,enabled" -H "accept: application/hal+json"

# The response:
{
"records": [
  {
    "uuid": "1d1c9dc8-4f17-11e9-9553-005056ac918a",
    "name": "user-cluster-01-a_clus1",
    "ip": {
      "address": "192.168.170.24"
    },
    "enabled": true,
    "location": {
      "home_node": {
        "name": "user-cluster-01-a"
      },
      "home_port": {
        "name": "e0a"
      }
    },
    "service_policy": {
      "name": "default-cluster"
    },
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/1d1c9dc8-4f17-11e9-9553-005056ac918a"
      }
    }
  },
  {
    "uuid": "d07782c1-4f16-11e9-86e7-005056ace7ee",
    "name": "user-cluster-01-b_clus1",
    "ip": {
      "address": "192.168.170.22"
    },
    "enabled": true,
    "location": {
      "home_node": {
        "name": "user-cluster-01-b"
      },
      "home_port": {
        "name": "e0a"
      }
    },
    "service_policy": {
      "name": "default-cluster"
    },
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/d07782c1-4f16-11e9-86e7-005056ace7ee"
      }
    }
  }
],
"num_records": 2,
"_links": {
  "self": {
    "href": "/api/network/ip/interfaces?location.home_port.name=e0a&fields=location.home_node.name,service_policy.name,ip.address,enabled"
  }
}
}

Creating IP interfaces

The IP interfaces POST API is used to create IP interfaces as shown in the following examples.


Examples

Creating a cluster-scoped IP interface using names

The following example shows the record returned after the creation of an IP interface on "e0d".


# The API:
/api/network/ip/interfaces

# The call:
curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18" }, "enabled": true, "scope": "cluster", "ipspace": { "name": "Default" }, "location": { "auto_revert": false, "failover": "broadcast_domain_only", "home_port": { "name": "e0d", "node": { "name": "user-cluster-01-a" } } }, "service_policy": { "name": "default-management" } }'

# The response:
{
"num_records": 1,
"records": [
  {
    "uuid": "245979de-59fc-11e8-ba55-005056b4340f",
    "name": "cluster_mgmt",
    "ip": {
      "address": "10.63.41.6",
      "netmask": "18"
    },
    "enabled": true,
    "scope": "cluster",
    "ipspace": {
      "name": "Default"
    },
    "location": {
      "auto_revert": false,
      "failover": "broadcast_domain_only",
      "home_port": {
        "name": "e0d",
        "node": {
          "name": "user-cluster-01-a"
        }
      },
    },
    "service_policy": {
      "name": "default-management"
    },
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f"
      }
    }
  }
]
}

Creating a SVM-scoped IP interface using a mix of parameter types

The following example shows the record returned after the creation of a IP interface by specifying a broadcast domain as the location.


# The API:
/api/network/ip/interfaces

# The call:
curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "Data1", "ip": { "address": "10.234.101.116", "netmask": "255.255.240.0" }, "enabled": true, "scope": "svm", "svm": { "uuid": "137f3618-1e89-11e9-803e-005056a7646a" }, "location": { "auto_revert": true, "broadcast_domain": { "name": "Default" } }, "service_policy": { "name": "default-data-files" } }'

# The response:
{
"num_records": 1,
"records": [
  {
    "uuid": "80d271c9-1f43-11e9-803e-005056a7646a",
    "name": "Data1",
    "ip": {
      "address": "10.234.101.116",
      "netmask": "20"
    },
    "enabled": true,
    "scope": "svm",
    "svm": {
      "uuid": "137f3618-1e89-11e9-803e-005056a7646a",
      "name": "vs0",
      "_links": {
        "self": {
          "href": "/api/svm/svms/137f3618-1e89-11e9-803e-005056a7646a"
        }
      }
    },
    "location": {
      "auto_revert": true
    },
    "service_policy": {
      "name": "default-data-files"
    },
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a"
      }
    }
  }
]
}

Creating a cluster-scoped IP interface without specifying the scope parameter

The following example shows the record returned after creating an IP interface on "e0d" without specifying the scope parameter. The scope is "cluster" if an "svm" is not specified.


# The API:
/api/network/ip/interfaces

# The call:
curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "cluster_mgmt", "ip": { "address": "10.63.41.6", "netmask": "18" }, "enabled": true, "ipspace": { "name": "Default" }, "location": { "auto_revert": false, "home_port": { "name": "e0d", "node": { "name": "user-cluster-01-a" } } }, "service_policy": { "name": "default-management" } }'

# The response:
{
"num_records": 1,
"records": [
  {
    "uuid": "245979de-59fc-11e8-ba55-005056b4340f",
    "name": "cluster_mgmt",
    "ip": {
      "address": "10.63.41.6",
      "netmask": "18"
    },
    "enabled": true,
    "scope": "cluster",
    "ipspace": {
      "name": "Default"
    },
    "location": {
      "auto_revert": false,
      "home_port": {
        "name": "e0d",
        "node": {
          "name": "user-cluster-01-a"
        }
      }
    },
    "service_policy": {
      "name": "default-management"
    },
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/245979de-59fc-11e8-ba55-005056b4340f"
      }
    }
  }
]
}

Creating an SVM-scoped IP interface without specifying the scope parameter

The following example shows the record returned after creating an IP interface on "e0d" without specifying the scope parameter. The scope is "svm" if the "svm" field is specified.


# The API:
/api/network/ip/interfaces

# The call:
curl -X POST "https://<mgmt-ip>/api/network/ip/interfaces?return_records=true" -H "accept: application/hal+json" -d '{ "name": "Data1", "ip": { "address": "10.234.101.116", "netmask": "255.255.240.0" }, "enabled": true, "svm": { "uuid": "137f3618-1e89-11e9-803e-005056a7646a" }, "location": { "auto_revert": true, "broadcast_domain": { "name": "Default" } }, "service_policy": { "name": "default-data-files" } }'

# The response:
{
"num_records": 1,
"records": [
  {
    "uuid": "80d271c9-1f43-11e9-803e-005056a7646a",
    "name": "Data1",
    "ip": {
      "address": "10.234.101.116",
      "netmask": "20"
    },
    "enabled": true,
    "scope": "svm",
    "svm": {
      "uuid": "137f3618-1e89-11e9-803e-005056a7646a",
      "name": "vs0",
      "_links": {
        "self": {
          "href": "/api/svms/137f3618-1e89-11e9-803e-005056a7646a"
        }
      }
    },
    "location": {
      "auto_revert": true
    },
    "service_policy": {
      "name": "default-data-files"
    },
    "_links": {
      "self": {
        "href": "/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a"
      }
    }
  }
]
}

Updating IP interfaces

The IP interfaces PATCH API is used to update attributes of IP interface.


Examples

Updating the auto revert flag of an IP interface

The following example shows how the PATCH request changes the auto revert flag to 'false'.


# The API:
/api/network/ip/interfaces/{uuid}

# The call:
curl -X PATCH "https://<mgmt-ip>/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" -H "accept: application/hal+json" -d '{ "location": { "auto_revert": "false" } }'
{
}

Updating the service policy of an IP interface

The following example shows how the PATCH request changes the service policy to 'default-management'.


# The API:
/api/network/ip/interfaces/{uuid}

# The call:
curl -X PATCH "https://<mgmt-ip>/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a" -H "accept: application/hal+json" -d '{ "service_policy": "default-management" }'
{
}

Deleting IP interfaces

The IP interfaces DELETE API is used to delete an IP interface in the cluster.


Example

Deleting an IP Interface

The following DELETE request deletes a network IP interface.


# The API:
/api/network/ip/interfaces/{uuid}

# The call:
curl -X DELETE "https://<mgmt-ip>/api/network/ip/interfaces/80d271c9-1f43-11e9-803e-005056a7646a"
{
}