#include <net/genetlink.h>
#include "br_private.h"
#include "br_private_cfm.h"
static const struct nla_policy
br_cfm_mep_create_policy[IFLA_BRIDGE_CFM_MEP_CREATE_MAX + 1] = …;
static const struct nla_policy
br_cfm_mep_delete_policy[IFLA_BRIDGE_CFM_MEP_DELETE_MAX + 1] = …;
static const struct nla_policy
br_cfm_mep_config_policy[IFLA_BRIDGE_CFM_MEP_CONFIG_MAX + 1] = …;
static const struct nla_policy
br_cfm_cc_config_policy[IFLA_BRIDGE_CFM_CC_CONFIG_MAX + 1] = …;
static const struct nla_policy
br_cfm_cc_peer_mep_policy[IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX + 1] = …;
static const struct nla_policy
br_cfm_cc_rdi_policy[IFLA_BRIDGE_CFM_CC_RDI_MAX + 1] = …;
static const struct nla_policy
br_cfm_cc_ccm_tx_policy[IFLA_BRIDGE_CFM_CC_CCM_TX_MAX + 1] = …;
static const struct nla_policy
br_cfm_policy[IFLA_BRIDGE_CFM_MAX + 1] = …;
static int br_mep_create_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_mep_delete_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_mep_config_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_cc_config_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_cc_peer_mep_add_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_cc_peer_mep_remove_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_cc_rdi_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
static int br_cc_ccm_tx_parse(struct net_bridge *br, struct nlattr *attr,
struct netlink_ext_ack *extack)
{ … }
int br_cfm_parse(struct net_bridge *br, struct net_bridge_port *p,
struct nlattr *attr, int cmd, struct netlink_ext_ack *extack)
{ … }
int br_cfm_config_fill_info(struct sk_buff *skb, struct net_bridge *br)
{ … }
int br_cfm_status_fill_info(struct sk_buff *skb,
struct net_bridge *br,
bool getlink)
{ … }