/* SPDX-License-Identifier: GPL-2.0 */ /****************************************************************************** * * Copyright (c) 2021 - 2022 MaxLinear, Inc. * *****************************************************************************/ #ifndef _PON_QOS_TC_PARSER_ #define _PON_QOS_TC_PARSER_ void pon_qos_tc2pce_subif_parse(struct net_device *dev, GSW_PCE_rule_t *pce_rule, int ifindex); void pon_qos_tc2pce_proto_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_vlan_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_vlan_prio_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_icmp_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_mld_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_ndp_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_key_eth_addr_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); void pon_qos_tc2pce_set_traffic_class(struct net_device *dev, unsigned int classid, GSW_PCE_rule_t *pce_rule); bool pon_qos_tc_parse_is_mcc(struct net_device *dev, const struct tc_cls_flower_offload *f); bool pon_qos_tc_parse_is_mld(struct net_device *dev, const struct tc_cls_flower_offload *f); void pon_qos_tc2pce_eth_proto_parse(struct net_device *dev, const struct tc_cls_flower_offload *f, GSW_PCE_rule_t *pce_rule); #endif