---
title: "Creates a network interface."
method: PUT
path: "/network-interfaces/{iface_id}"
---

# Creates a network interface.

`PUT /network-interfaces/{iface_id}`

Creates new network interface with ID specified by iface_id path parameter. Updating existing interfaces is currently not allowed.

## Path parameters

- `iface_id` string, required

## Request body

- NetworkInterface — Defines a network interface.
  - `iface_id` string, required
  - `guest_mac` string
  - `host_dev_name` string — Host level path for the guest network interface
  - `allow_mmds_requests` boolean — If this field is set, the device model will reply to HTTP GET requests sent to the MMDS address via this interface. In this case, both ARP requests for 169.254.169.254 and TCP segments heading to the same address are intercepted by the device model, and do not reach the associated TAP device.
  - `rx_rate_limiter` RateLimiter — Defines an IO rate limiter with independent bytes/s and ops/s limits. Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets.
    - `bandwidth` TokenBucket — Defines a token bucket with a maximum capacity (size), an initial burst size (one_time_burst) and an interval for refilling purposes (refill_time). The refill-rate is derived from size and refill_time, and it is the constant rate at which the tokens replenish. The refill process only starts happening after the initial burst budget is consumed. Consumption from the token bucket is unbounded in speed which allows for bursts bound in size by the amount of tokens available. Once the token bucket is empty, consumption speed is bound by the refill_rate.
      - `size` integer — The total number of tokens this bucket can hold.
      - `one_time_burst` integer — The initial size of a token bucket.
      - `refill_time` integer — The amount of milliseconds it takes for the bucket to refill.
    - `ops` TokenBucket — Defines a token bucket with a maximum capacity (size), an initial burst size (one_time_burst) and an interval for refilling purposes (refill_time). The refill-rate is derived from size and refill_time, and it is the constant rate at which the tokens replenish. The refill process only starts happening after the initial burst budget is consumed. Consumption from the token bucket is unbounded in speed which allows for bursts bound in size by the amount of tokens available. Once the token bucket is empty, consumption speed is bound by the refill_rate.
      - `size` integer — The total number of tokens this bucket can hold.
      - `one_time_burst` integer — The initial size of a token bucket.
      - `refill_time` integer — The amount of milliseconds it takes for the bucket to refill.
  - `tx_rate_limiter` RateLimiter — Defines an IO rate limiter with independent bytes/s and ops/s limits. Limits are defined by configuring each of the _bandwidth_ and _ops_ token buckets.
    - `bandwidth` TokenBucket — Defines a token bucket with a maximum capacity (size), an initial burst size (one_time_burst) and an interval for refilling purposes (refill_time). The refill-rate is derived from size and refill_time, and it is the constant rate at which the tokens replenish. The refill process only starts happening after the initial burst budget is consumed. Consumption from the token bucket is unbounded in speed which allows for bursts bound in size by the amount of tokens available. Once the token bucket is empty, consumption speed is bound by the refill_rate.
      - `size` integer — The total number of tokens this bucket can hold.
      - `one_time_burst` integer — The initial size of a token bucket.
      - `refill_time` integer — The amount of milliseconds it takes for the bucket to refill.
    - `ops` TokenBucket — Defines a token bucket with a maximum capacity (size), an initial burst size (one_time_burst) and an interval for refilling purposes (refill_time). The refill-rate is derived from size and refill_time, and it is the constant rate at which the tokens replenish. The refill process only starts happening after the initial burst budget is consumed. Consumption from the token bucket is unbounded in speed which allows for bursts bound in size by the amount of tokens available. Once the token bucket is empty, consumption speed is bound by the refill_rate.
      - `size` integer — The total number of tokens this bucket can hold.
      - `one_time_burst` integer — The initial size of a token bucket.
      - `refill_time` integer — The amount of milliseconds it takes for the bucket to refill.
  - `state` 'Attached' — The valid states for a Device. So far, a device can only be in the Attached mode. Future valid values will be Detaching and Detached.

## Response `204`

Network interface created/updated

## Other responses

- `400` — Network interface cannot be created due to bad input
- `default` — Internal server error

---

[API](https://skmtc.dev/solo-io/apis/firecracker-api.md) · [All operations](https://skmtc.dev/solo-io/apis/firecracker-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/solo-io/firecracker-api/revisions/6e4082be4a32/schema)
