# Auto-Generated "Supported Features" Tables The `features` Sphinx directive generates the _supported features_ tables for the [](supported-platforms) document and the module descriptions. ```{warning} The current implementation does not support provider-specific features. ``` The `features` directive is invoked with the [MyST directive syntax](https://myst-parser.readthedocs.io/en/latest/syntax/roles-and-directives.html#syntax-directives): ````md ```{features} ``` ```` The directive content is a YAML-formatted description of the features that should be included in the table, for example: ````md ```{features} - title: BFD
protocol enabled: bfd caveats: bfd.caveats - title: OSPF
with BFD enabled: ospf and bfd - title: IS-IS
with BFD enabled: isis and bfd - title: BGP
with BFD enabled: bgp.bfd caveats: bgp.bfd.caveats ``` ```` Each column definition (feature) can have these parameters: * **title** (required) -- the column header * **enabled** (required) -- the Python expression that results in a truthy value if the feature works on the device. The expression can use all device definition data (for example, `libvirt.image`), and the device features (for example, `ospf.areas`) * **caveats** (optional) -- the Python expression that checks whether the device/feature entry should include a link to caveats. The value of the specified device feature could be **true**, in which case the link pointing to the caveat is `caveats-_device_`, or a documentation anchor ID. When dealing with the parent/child devices (for example, Cisco IOS or Junos platforms), the `features` directive automatically detects whether a child device supports a different set of features than the parent device, removes child devices that inherit feature settings from their parents, and creates a "this parent device includes these other devices" footnote. Two other device parameters influence the auto-generated "supported features" tables: * **docname** is a shorter device name (between device code and full device description). For example, Arista EOS has `eos` device code, "Arista vEOS VM or cEOS container" **description**, and "Arista EOS" **docname**. * Sometimes, you don't want a device to be displayed like a parent device in the features table. For example, the `sonic` device uses `frr` as its parent, but we'd definitely not want to have "FRR includes SONiC" as a footnote. In these cases, set the **docparent** parameter of the parent device to `False`.