Lines Matching refs:desc_info
194 struct rocker_desc_info *desc_info; member
790 const struct rocker_desc_info *desc_info) in rocker_tlv_parse_desc() argument
792 rocker_tlv_parse(tb, maxtype, desc_info->data, in rocker_tlv_parse_desc()
793 desc_info->desc->tlv_size); in rocker_tlv_parse_desc()
796 static struct rocker_tlv *rocker_tlv_start(struct rocker_desc_info *desc_info) in rocker_tlv_start() argument
798 return (struct rocker_tlv *) ((char *) desc_info->data + in rocker_tlv_start()
799 desc_info->tlv_size); in rocker_tlv_start()
802 static int rocker_tlv_put(struct rocker_desc_info *desc_info, in rocker_tlv_put() argument
805 int tail_room = desc_info->data_size - desc_info->tlv_size; in rocker_tlv_put()
812 tlv = rocker_tlv_start(desc_info); in rocker_tlv_put()
813 desc_info->tlv_size += total_size; in rocker_tlv_put()
821 static int rocker_tlv_put_u8(struct rocker_desc_info *desc_info, in rocker_tlv_put_u8() argument
824 return rocker_tlv_put(desc_info, attrtype, sizeof(u8), &value); in rocker_tlv_put_u8()
827 static int rocker_tlv_put_u16(struct rocker_desc_info *desc_info, in rocker_tlv_put_u16() argument
830 return rocker_tlv_put(desc_info, attrtype, sizeof(u16), &value); in rocker_tlv_put_u16()
833 static int rocker_tlv_put_be16(struct rocker_desc_info *desc_info, in rocker_tlv_put_be16() argument
836 return rocker_tlv_put(desc_info, attrtype, sizeof(__be16), &value); in rocker_tlv_put_be16()
839 static int rocker_tlv_put_u32(struct rocker_desc_info *desc_info, in rocker_tlv_put_u32() argument
842 return rocker_tlv_put(desc_info, attrtype, sizeof(u32), &value); in rocker_tlv_put_u32()
845 static int rocker_tlv_put_be32(struct rocker_desc_info *desc_info, in rocker_tlv_put_be32() argument
848 return rocker_tlv_put(desc_info, attrtype, sizeof(__be32), &value); in rocker_tlv_put_be32()
851 static int rocker_tlv_put_u64(struct rocker_desc_info *desc_info, in rocker_tlv_put_u64() argument
854 return rocker_tlv_put(desc_info, attrtype, sizeof(u64), &value); in rocker_tlv_put_u64()
858 rocker_tlv_nest_start(struct rocker_desc_info *desc_info, int attrtype) in rocker_tlv_nest_start() argument
860 struct rocker_tlv *start = rocker_tlv_start(desc_info); in rocker_tlv_nest_start()
862 if (rocker_tlv_put(desc_info, attrtype, 0, NULL) < 0) in rocker_tlv_nest_start()
868 static void rocker_tlv_nest_end(struct rocker_desc_info *desc_info, in rocker_tlv_nest_end() argument
871 start->len = (char *) rocker_tlv_start(desc_info) - (char *) start; in rocker_tlv_nest_end()
874 static void rocker_tlv_nest_cancel(struct rocker_desc_info *desc_info, in rocker_tlv_nest_cancel() argument
877 desc_info->tlv_size = (const char *) start - desc_info->data; in rocker_tlv_nest_cancel()
889 static int rocker_desc_err(const struct rocker_desc_info *desc_info) in rocker_desc_err() argument
891 int err = desc_info->desc->comp_err & ~ROCKER_DMA_DESC_COMP_ERR_GEN; in rocker_desc_err()
917 static void rocker_desc_gen_clear(const struct rocker_desc_info *desc_info) in rocker_desc_gen_clear() argument
919 desc_info->desc->comp_err &= ~ROCKER_DMA_DESC_COMP_ERR_GEN; in rocker_desc_gen_clear()
922 static bool rocker_desc_gen(const struct rocker_desc_info *desc_info) in rocker_desc_gen() argument
924 u32 comp_err = desc_info->desc->comp_err; in rocker_desc_gen()
929 static void *rocker_desc_cookie_ptr_get(const struct rocker_desc_info *desc_info) in rocker_desc_cookie_ptr_get() argument
931 return (void *)(uintptr_t)desc_info->desc->cookie; in rocker_desc_cookie_ptr_get()
934 static void rocker_desc_cookie_ptr_set(const struct rocker_desc_info *desc_info, in rocker_desc_cookie_ptr_set() argument
937 desc_info->desc->cookie = (uintptr_t) ptr; in rocker_desc_cookie_ptr_set()
943 static struct rocker_desc_info *desc_info; in rocker_desc_head_get() local
946 desc_info = &info->desc_info[info->head]; in rocker_desc_head_get()
949 desc_info->tlv_size = 0; in rocker_desc_head_get()
950 return desc_info; in rocker_desc_head_get()
953 static void rocker_desc_commit(const struct rocker_desc_info *desc_info) in rocker_desc_commit() argument
955 desc_info->desc->buf_size = desc_info->data_size; in rocker_desc_commit()
956 desc_info->desc->tlv_size = desc_info->tlv_size; in rocker_desc_commit()
961 const struct rocker_desc_info *desc_info) in rocker_desc_head_set() argument
966 rocker_desc_commit(desc_info); in rocker_desc_head_set()
974 static struct rocker_desc_info *desc_info; in rocker_desc_tail_get() local
978 desc_info = &info->desc_info[info->tail]; in rocker_desc_tail_get()
979 if (!rocker_desc_gen(desc_info)) in rocker_desc_tail_get()
982 desc_info->tlv_size = desc_info->desc->tlv_size; in rocker_desc_tail_get()
983 return desc_info; in rocker_desc_tail_get()
1012 info->desc_info = kcalloc(info->size, sizeof(*info->desc_info), in rocker_dma_ring_create()
1014 if (!info->desc_info) in rocker_dma_ring_create()
1021 kfree(info->desc_info); in rocker_dma_ring_create()
1026 info->desc_info[i].desc = &info->desc[i]; in rocker_dma_ring_create()
1044 kfree(info->desc_info); in rocker_dma_ring_destroy()
1058 rocker_desc_head_set(rocker, info, &info->desc_info[i]); in rocker_dma_ring_pass_to_producer()
1059 rocker_desc_commit(&info->desc_info[i]); in rocker_dma_ring_pass_to_producer()
1071 struct rocker_desc_info *desc_info = &info->desc_info[i]; in rocker_dma_ring_bufs_alloc() local
1089 desc_info->data = buf; in rocker_dma_ring_bufs_alloc()
1090 desc_info->data_size = buf_size; in rocker_dma_ring_bufs_alloc()
1091 dma_unmap_addr_set(desc_info, mapaddr, dma_handle); in rocker_dma_ring_bufs_alloc()
1100 const struct rocker_desc_info *desc_info = &info->desc_info[i]; in rocker_dma_ring_bufs_alloc() local
1102 pci_unmap_single(pdev, dma_unmap_addr(desc_info, mapaddr), in rocker_dma_ring_bufs_alloc()
1103 desc_info->data_size, direction); in rocker_dma_ring_bufs_alloc()
1104 kfree(desc_info->data); in rocker_dma_ring_bufs_alloc()
1117 const struct rocker_desc_info *desc_info = &info->desc_info[i]; in rocker_dma_ring_bufs_free() local
1122 pci_unmap_single(pdev, dma_unmap_addr(desc_info, mapaddr), in rocker_dma_ring_bufs_free()
1123 desc_info->data_size, direction); in rocker_dma_ring_bufs_free()
1124 kfree(desc_info->data); in rocker_dma_ring_bufs_free()
1188 struct rocker_desc_info *desc_info, in rocker_dma_rx_ring_skb_map() argument
1199 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_RX_FRAG_ADDR, dma_handle)) in rocker_dma_rx_ring_skb_map()
1201 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_RX_FRAG_MAX_LEN, buf_len)) in rocker_dma_rx_ring_skb_map()
1207 desc_info->tlv_size = 0; in rocker_dma_rx_ring_skb_map()
1217 struct rocker_desc_info *desc_info) in rocker_dma_rx_ring_skb_alloc() argument
1227 rocker_desc_cookie_ptr_set(desc_info, NULL); in rocker_dma_rx_ring_skb_alloc()
1228 desc_info->tlv_size = 0; in rocker_dma_rx_ring_skb_alloc()
1233 err = rocker_dma_rx_ring_skb_map(rocker_port, desc_info, skb, buf_len); in rocker_dma_rx_ring_skb_alloc()
1238 rocker_desc_cookie_ptr_set(desc_info, skb); in rocker_dma_rx_ring_skb_alloc()
1258 const struct rocker_desc_info *desc_info) in rocker_dma_rx_ring_skb_free() argument
1261 struct sk_buff *skb = rocker_desc_cookie_ptr_get(desc_info); in rocker_dma_rx_ring_skb_free()
1265 rocker_tlv_parse_desc(attrs, ROCKER_TLV_RX_MAX, desc_info); in rocker_dma_rx_ring_skb_free()
1279 &rx_ring->desc_info[i]); in rocker_dma_rx_ring_skbs_alloc()
1287 rocker_dma_rx_ring_skb_free(rocker, &rx_ring->desc_info[i]); in rocker_dma_rx_ring_skbs_alloc()
1298 rocker_dma_rx_ring_skb_free(rocker, &rx_ring->desc_info[i]); in rocker_dma_rx_ring_skbs_free()
1394 const struct rocker_desc_info *desc_info; in rocker_cmd_irq_handler() local
1399 while ((desc_info = rocker_desc_tail_get(&rocker->cmd_ring))) { in rocker_cmd_irq_handler()
1400 wait = rocker_desc_cookie_ptr_get(desc_info); in rocker_cmd_irq_handler()
1402 rocker_desc_gen_clear(desc_info); in rocker_cmd_irq_handler()
1495 const struct rocker_desc_info *desc_info) in rocker_event_process() argument
1501 rocker_tlv_parse_desc(attrs, ROCKER_TLV_EVENT_MAX, desc_info); in rocker_event_process()
1523 const struct rocker_desc_info *desc_info; in rocker_event_irq_handler() local
1527 while ((desc_info = rocker_desc_tail_get(&rocker->event_ring))) { in rocker_event_irq_handler()
1528 err = rocker_desc_err(desc_info); in rocker_event_irq_handler()
1533 err = rocker_event_process(rocker, desc_info); in rocker_event_irq_handler()
1538 rocker_desc_gen_clear(desc_info); in rocker_event_irq_handler()
1539 rocker_desc_head_set(rocker, &rocker->event_ring, desc_info); in rocker_event_irq_handler()
1568 struct rocker_desc_info *desc_info,
1572 const struct rocker_desc_info *desc_info,
1581 struct rocker_desc_info *desc_info; in rocker_cmd_exec() local
1594 desc_info = rocker_desc_head_get(&rocker->cmd_ring); in rocker_cmd_exec()
1595 if (!desc_info) { in rocker_cmd_exec()
1601 err = prepare(rocker_port, desc_info, prepare_priv); in rocker_cmd_exec()
1607 rocker_desc_cookie_ptr_set(desc_info, wait); in rocker_cmd_exec()
1610 rocker_desc_head_set(rocker, &rocker->cmd_ring, desc_info); in rocker_cmd_exec()
1621 err = rocker_desc_err(desc_info); in rocker_cmd_exec()
1626 err = process(rocker_port, desc_info, process_priv); in rocker_cmd_exec()
1628 rocker_desc_gen_clear(desc_info); in rocker_cmd_exec()
1636 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_prep() argument
1641 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_get_port_settings_prep()
1644 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_get_port_settings_prep()
1647 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_get_port_settings_prep()
1650 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_get_port_settings_prep()
1656 const struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_ethtool_proc() argument
1666 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_settings_ethtool_proc()
1694 const struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_macaddr_proc() argument
1702 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_settings_macaddr_proc()
1726 const struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_phys_name_proc() argument
1736 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_settings_phys_name_proc()
1767 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_settings_ethtool_prep() argument
1773 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_settings_ethtool_prep()
1776 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_settings_ethtool_prep()
1779 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_settings_ethtool_prep()
1782 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_SPEED, in rocker_cmd_set_port_settings_ethtool_prep()
1785 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_DUPLEX, in rocker_cmd_set_port_settings_ethtool_prep()
1788 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_AUTONEG, in rocker_cmd_set_port_settings_ethtool_prep()
1791 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_settings_ethtool_prep()
1797 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_settings_macaddr_prep() argument
1803 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_settings_macaddr_prep()
1806 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_settings_macaddr_prep()
1809 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_settings_macaddr_prep()
1812 if (rocker_tlv_put(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_MACADDR, in rocker_cmd_set_port_settings_macaddr_prep()
1815 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_settings_macaddr_prep()
1821 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_settings_mtu_prep() argument
1827 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_settings_mtu_prep()
1830 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_settings_mtu_prep()
1833 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_settings_mtu_prep()
1836 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_MTU, in rocker_cmd_set_port_settings_mtu_prep()
1839 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_settings_mtu_prep()
1845 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_learning_prep() argument
1850 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_learning_prep()
1853 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_learning_prep()
1856 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_learning_prep()
1859 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_LEARNING, in rocker_cmd_set_port_learning_prep()
1862 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_learning_prep()
1917 rocker_cmd_flow_tbl_add_ig_port(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_ig_port() argument
1920 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_ig_port()
1923 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT_MASK, in rocker_cmd_flow_tbl_add_ig_port()
1926 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_ig_port()
1934 rocker_cmd_flow_tbl_add_vlan(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_vlan() argument
1937 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_vlan()
1940 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_vlan()
1943 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID_MASK, in rocker_cmd_flow_tbl_add_vlan()
1946 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_vlan()
1950 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_NEW_VLAN_ID, in rocker_cmd_flow_tbl_add_vlan()
1958 rocker_cmd_flow_tbl_add_term_mac(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_term_mac() argument
1961 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_term_mac()
1964 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT_MASK, in rocker_cmd_flow_tbl_add_term_mac()
1967 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_ETHERTYPE, in rocker_cmd_flow_tbl_add_term_mac()
1970 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_flow_tbl_add_term_mac()
1973 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC_MASK, in rocker_cmd_flow_tbl_add_term_mac()
1976 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_term_mac()
1979 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID_MASK, in rocker_cmd_flow_tbl_add_term_mac()
1982 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_term_mac()
1986 rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_COPY_CPU_ACTION, in rocker_cmd_flow_tbl_add_term_mac()
1994 rocker_cmd_flow_tbl_add_ucast_routing(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_ucast_routing() argument
1997 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_ETHERTYPE, in rocker_cmd_flow_tbl_add_ucast_routing()
2000 if (rocker_tlv_put_be32(desc_info, ROCKER_TLV_OF_DPA_DST_IP, in rocker_cmd_flow_tbl_add_ucast_routing()
2003 if (rocker_tlv_put_be32(desc_info, ROCKER_TLV_OF_DPA_DST_IP_MASK, in rocker_cmd_flow_tbl_add_ucast_routing()
2006 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_ucast_routing()
2009 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_flow_tbl_add_ucast_routing()
2017 rocker_cmd_flow_tbl_add_bridge(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_bridge() argument
2021 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_flow_tbl_add_bridge()
2025 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC_MASK, in rocker_cmd_flow_tbl_add_bridge()
2029 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_bridge()
2033 rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_TUNNEL_ID, in rocker_cmd_flow_tbl_add_bridge()
2036 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_bridge()
2039 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_flow_tbl_add_bridge()
2043 rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_COPY_CPU_ACTION, in rocker_cmd_flow_tbl_add_bridge()
2051 rocker_cmd_flow_tbl_add_acl(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_acl() argument
2054 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_acl()
2057 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT_MASK, in rocker_cmd_flow_tbl_add_acl()
2060 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC, in rocker_cmd_flow_tbl_add_acl()
2063 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC_MASK, in rocker_cmd_flow_tbl_add_acl()
2066 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_flow_tbl_add_acl()
2069 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC_MASK, in rocker_cmd_flow_tbl_add_acl()
2072 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_ETHERTYPE, in rocker_cmd_flow_tbl_add_acl()
2075 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_acl()
2078 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID_MASK, in rocker_cmd_flow_tbl_add_acl()
2085 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_IP_PROTO, in rocker_cmd_flow_tbl_add_acl()
2088 if (rocker_tlv_put_u8(desc_info, in rocker_cmd_flow_tbl_add_acl()
2092 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_IP_DSCP, in rocker_cmd_flow_tbl_add_acl()
2095 if (rocker_tlv_put_u8(desc_info, in rocker_cmd_flow_tbl_add_acl()
2099 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_IP_ECN, in rocker_cmd_flow_tbl_add_acl()
2102 if (rocker_tlv_put_u8(desc_info, in rocker_cmd_flow_tbl_add_acl()
2110 rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_flow_tbl_add_acl()
2118 struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add() argument
2125 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_add()
2127 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_flow_tbl_add()
2130 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_TABLE_ID, in rocker_cmd_flow_tbl_add()
2133 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_PRIORITY, in rocker_cmd_flow_tbl_add()
2136 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_HARDTIME, 0)) in rocker_cmd_flow_tbl_add()
2138 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_OF_DPA_COOKIE, in rocker_cmd_flow_tbl_add()
2144 err = rocker_cmd_flow_tbl_add_ig_port(desc_info, entry); in rocker_cmd_flow_tbl_add()
2147 err = rocker_cmd_flow_tbl_add_vlan(desc_info, entry); in rocker_cmd_flow_tbl_add()
2150 err = rocker_cmd_flow_tbl_add_term_mac(desc_info, entry); in rocker_cmd_flow_tbl_add()
2153 err = rocker_cmd_flow_tbl_add_ucast_routing(desc_info, entry); in rocker_cmd_flow_tbl_add()
2156 err = rocker_cmd_flow_tbl_add_bridge(desc_info, entry); in rocker_cmd_flow_tbl_add()
2159 err = rocker_cmd_flow_tbl_add_acl(desc_info, entry); in rocker_cmd_flow_tbl_add()
2169 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_flow_tbl_add()
2175 struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_del() argument
2181 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_del()
2183 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_flow_tbl_del()
2186 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_OF_DPA_COOKIE, in rocker_cmd_flow_tbl_del()
2189 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_flow_tbl_del()
2195 rocker_cmd_group_tbl_add_l2_interface(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_l2_interface() argument
2198 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_OUT_PPORT, in rocker_cmd_group_tbl_add_l2_interface()
2201 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_POP_VLAN, in rocker_cmd_group_tbl_add_l2_interface()
2209 rocker_cmd_group_tbl_add_l2_rewrite(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_l2_rewrite() argument
2212 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID_LOWER, in rocker_cmd_group_tbl_add_l2_rewrite()
2216 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC, in rocker_cmd_group_tbl_add_l2_rewrite()
2220 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_group_tbl_add_l2_rewrite()
2224 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_group_tbl_add_l2_rewrite()
2232 rocker_cmd_group_tbl_add_group_ids(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_group_ids() argument
2238 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GROUP_COUNT, in rocker_cmd_group_tbl_add_group_ids()
2242 group_ids = rocker_tlv_nest_start(desc_info, in rocker_cmd_group_tbl_add_group_ids()
2249 if (rocker_tlv_put_u32(desc_info, i + 1, entry->group_ids[i])) in rocker_cmd_group_tbl_add_group_ids()
2252 rocker_tlv_nest_end(desc_info, group_ids); in rocker_cmd_group_tbl_add_group_ids()
2258 rocker_cmd_group_tbl_add_l3_unicast(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_l3_unicast() argument
2262 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC, in rocker_cmd_group_tbl_add_l3_unicast()
2266 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_group_tbl_add_l3_unicast()
2270 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_group_tbl_add_l3_unicast()
2273 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_TTL_CHECK, in rocker_cmd_group_tbl_add_l3_unicast()
2276 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID_LOWER, in rocker_cmd_group_tbl_add_l3_unicast()
2284 struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add() argument
2291 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_add()
2293 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_group_tbl_add()
2297 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_group_tbl_add()
2303 err = rocker_cmd_group_tbl_add_l2_interface(desc_info, entry); in rocker_cmd_group_tbl_add()
2306 err = rocker_cmd_group_tbl_add_l2_rewrite(desc_info, entry); in rocker_cmd_group_tbl_add()
2310 err = rocker_cmd_group_tbl_add_group_ids(desc_info, entry); in rocker_cmd_group_tbl_add()
2313 err = rocker_cmd_group_tbl_add_l3_unicast(desc_info, entry); in rocker_cmd_group_tbl_add()
2323 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_group_tbl_add()
2329 struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_del() argument
2335 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_del()
2337 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_group_tbl_del()
2340 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_group_tbl_del()
2343 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_group_tbl_del()
4102 const struct rocker_desc_info *desc_info) in rocker_tx_desc_frags_unmap() argument
4110 rocker_tlv_parse_desc(attrs, ROCKER_TLV_TX_MAX, desc_info); in rocker_tx_desc_frags_unmap()
4132 struct rocker_desc_info *desc_info, in rocker_tx_desc_frag_map_put() argument
4146 frag = rocker_tlv_nest_start(desc_info, ROCKER_TLV_TX_FRAG); in rocker_tx_desc_frag_map_put()
4149 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_TX_FRAG_ATTR_ADDR, in rocker_tx_desc_frag_map_put()
4152 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_TX_FRAG_ATTR_LEN, in rocker_tx_desc_frag_map_put()
4155 rocker_tlv_nest_end(desc_info, frag); in rocker_tx_desc_frag_map_put()
4159 rocker_tlv_nest_cancel(desc_info, frag); in rocker_tx_desc_frag_map_put()
4169 struct rocker_desc_info *desc_info; in rocker_port_xmit() local
4174 desc_info = rocker_desc_head_get(&rocker_port->tx_ring); in rocker_port_xmit()
4175 if (unlikely(!desc_info)) { in rocker_port_xmit()
4181 rocker_desc_cookie_ptr_set(desc_info, skb); in rocker_port_xmit()
4183 frags = rocker_tlv_nest_start(desc_info, ROCKER_TLV_TX_FRAGS); in rocker_port_xmit()
4186 err = rocker_tx_desc_frag_map_put(rocker_port, desc_info, in rocker_port_xmit()
4199 err = rocker_tx_desc_frag_map_put(rocker_port, desc_info, in rocker_port_xmit()
4205 rocker_tlv_nest_end(desc_info, frags); in rocker_port_xmit()
4207 rocker_desc_gen_clear(desc_info); in rocker_port_xmit()
4208 rocker_desc_head_set(rocker, &rocker_port->tx_ring, desc_info); in rocker_port_xmit()
4210 desc_info = rocker_desc_head_get(&rocker_port->tx_ring); in rocker_port_xmit()
4211 if (!desc_info) in rocker_port_xmit()
4217 rocker_tx_desc_frags_unmap(rocker_port, desc_info); in rocker_port_xmit()
4219 rocker_tlv_nest_cancel(desc_info, frags); in rocker_port_xmit()
4709 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_stats_prep() argument
4714 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_get_port_stats_prep()
4718 cmd_stats = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_get_port_stats_prep()
4722 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_STATS_PPORT, in rocker_cmd_get_port_stats_prep()
4726 rocker_tlv_nest_end(desc_info, cmd_stats); in rocker_cmd_get_port_stats_prep()
4733 const struct rocker_desc_info *desc_info, in rocker_cmd_get_port_stats_ethtool_proc() argument
4743 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_stats_ethtool_proc()
4824 const struct rocker_desc_info *desc_info; in rocker_port_poll_tx() local
4829 while ((desc_info = rocker_desc_tail_get(&rocker_port->tx_ring))) { in rocker_port_poll_tx()
4832 err = rocker_desc_err(desc_info); in rocker_port_poll_tx()
4836 rocker_tx_desc_frags_unmap(rocker_port, desc_info); in rocker_port_poll_tx()
4838 skb = rocker_desc_cookie_ptr_get(desc_info); in rocker_port_poll_tx()
4861 struct rocker_desc_info *desc_info) in rocker_port_rx_proc() argument
4864 struct sk_buff *skb = rocker_desc_cookie_ptr_get(desc_info); in rocker_port_rx_proc()
4871 rocker_tlv_parse_desc(attrs, ROCKER_TLV_RX_MAX, desc_info); in rocker_port_rx_proc()
4891 return rocker_dma_rx_ring_skb_alloc(rocker_port, desc_info); in rocker_port_rx_proc()
4903 struct rocker_desc_info *desc_info; in rocker_port_poll_rx() local
4909 (desc_info = rocker_desc_tail_get(&rocker_port->rx_ring))) { in rocker_port_poll_rx()
4910 err = rocker_desc_err(desc_info); in rocker_port_poll_rx()
4917 desc_info); in rocker_port_poll_rx()
4925 rocker_desc_gen_clear(desc_info); in rocker_port_poll_rx()
4926 rocker_desc_head_set(rocker, &rocker_port->rx_ring, desc_info); in rocker_port_poll_rx()