Lines Matching refs:desc_info

193 	struct rocker_desc_info *desc_info;  member
708 struct rocker_desc_info *desc_info) in rocker_tlv_parse_desc() argument
710 rocker_tlv_parse(tb, maxtype, desc_info->data, in rocker_tlv_parse_desc()
711 desc_info->desc->tlv_size); in rocker_tlv_parse_desc()
714 static struct rocker_tlv *rocker_tlv_start(struct rocker_desc_info *desc_info) in rocker_tlv_start() argument
716 return (struct rocker_tlv *) ((char *) desc_info->data + in rocker_tlv_start()
717 desc_info->tlv_size); in rocker_tlv_start()
720 static int rocker_tlv_put(struct rocker_desc_info *desc_info, in rocker_tlv_put() argument
723 int tail_room = desc_info->data_size - desc_info->tlv_size; in rocker_tlv_put()
730 tlv = rocker_tlv_start(desc_info); in rocker_tlv_put()
731 desc_info->tlv_size += total_size; in rocker_tlv_put()
739 static int rocker_tlv_put_u8(struct rocker_desc_info *desc_info, in rocker_tlv_put_u8() argument
742 return rocker_tlv_put(desc_info, attrtype, sizeof(u8), &value); in rocker_tlv_put_u8()
745 static int rocker_tlv_put_u16(struct rocker_desc_info *desc_info, in rocker_tlv_put_u16() argument
748 return rocker_tlv_put(desc_info, attrtype, sizeof(u16), &value); in rocker_tlv_put_u16()
751 static int rocker_tlv_put_be16(struct rocker_desc_info *desc_info, in rocker_tlv_put_be16() argument
754 return rocker_tlv_put(desc_info, attrtype, sizeof(__be16), &value); in rocker_tlv_put_be16()
757 static int rocker_tlv_put_u32(struct rocker_desc_info *desc_info, in rocker_tlv_put_u32() argument
760 return rocker_tlv_put(desc_info, attrtype, sizeof(u32), &value); in rocker_tlv_put_u32()
763 static int rocker_tlv_put_be32(struct rocker_desc_info *desc_info, in rocker_tlv_put_be32() argument
766 return rocker_tlv_put(desc_info, attrtype, sizeof(__be32), &value); in rocker_tlv_put_be32()
769 static int rocker_tlv_put_u64(struct rocker_desc_info *desc_info, in rocker_tlv_put_u64() argument
772 return rocker_tlv_put(desc_info, attrtype, sizeof(u64), &value); in rocker_tlv_put_u64()
776 rocker_tlv_nest_start(struct rocker_desc_info *desc_info, int attrtype) in rocker_tlv_nest_start() argument
778 struct rocker_tlv *start = rocker_tlv_start(desc_info); in rocker_tlv_nest_start()
780 if (rocker_tlv_put(desc_info, attrtype, 0, NULL) < 0) in rocker_tlv_nest_start()
786 static void rocker_tlv_nest_end(struct rocker_desc_info *desc_info, in rocker_tlv_nest_end() argument
789 start->len = (char *) rocker_tlv_start(desc_info) - (char *) start; in rocker_tlv_nest_end()
792 static void rocker_tlv_nest_cancel(struct rocker_desc_info *desc_info, in rocker_tlv_nest_cancel() argument
795 desc_info->tlv_size = (char *) start - desc_info->data; in rocker_tlv_nest_cancel()
807 static int rocker_desc_err(struct rocker_desc_info *desc_info) in rocker_desc_err() argument
809 int err = desc_info->desc->comp_err & ~ROCKER_DMA_DESC_COMP_ERR_GEN; in rocker_desc_err()
835 static void rocker_desc_gen_clear(struct rocker_desc_info *desc_info) in rocker_desc_gen_clear() argument
837 desc_info->desc->comp_err &= ~ROCKER_DMA_DESC_COMP_ERR_GEN; in rocker_desc_gen_clear()
840 static bool rocker_desc_gen(struct rocker_desc_info *desc_info) in rocker_desc_gen() argument
842 u32 comp_err = desc_info->desc->comp_err; in rocker_desc_gen()
847 static void *rocker_desc_cookie_ptr_get(struct rocker_desc_info *desc_info) in rocker_desc_cookie_ptr_get() argument
849 return (void *)(uintptr_t)desc_info->desc->cookie; in rocker_desc_cookie_ptr_get()
852 static void rocker_desc_cookie_ptr_set(struct rocker_desc_info *desc_info, in rocker_desc_cookie_ptr_set() argument
855 desc_info->desc->cookie = (uintptr_t) ptr; in rocker_desc_cookie_ptr_set()
861 static struct rocker_desc_info *desc_info; in rocker_desc_head_get() local
864 desc_info = &info->desc_info[info->head]; in rocker_desc_head_get()
867 desc_info->tlv_size = 0; in rocker_desc_head_get()
868 return desc_info; in rocker_desc_head_get()
871 static void rocker_desc_commit(struct rocker_desc_info *desc_info) in rocker_desc_commit() argument
873 desc_info->desc->buf_size = desc_info->data_size; in rocker_desc_commit()
874 desc_info->desc->tlv_size = desc_info->tlv_size; in rocker_desc_commit()
879 struct rocker_desc_info *desc_info) in rocker_desc_head_set() argument
884 rocker_desc_commit(desc_info); in rocker_desc_head_set()
892 static struct rocker_desc_info *desc_info; in rocker_desc_tail_get() local
896 desc_info = &info->desc_info[info->tail]; in rocker_desc_tail_get()
897 if (!rocker_desc_gen(desc_info)) in rocker_desc_tail_get()
900 desc_info->tlv_size = desc_info->desc->tlv_size; in rocker_desc_tail_get()
901 return desc_info; in rocker_desc_tail_get()
930 info->desc_info = kcalloc(info->size, sizeof(*info->desc_info), in rocker_dma_ring_create()
932 if (!info->desc_info) in rocker_dma_ring_create()
939 kfree(info->desc_info); in rocker_dma_ring_create()
944 info->desc_info[i].desc = &info->desc[i]; in rocker_dma_ring_create()
962 kfree(info->desc_info); in rocker_dma_ring_destroy()
976 rocker_desc_head_set(rocker, info, &info->desc_info[i]); in rocker_dma_ring_pass_to_producer()
977 rocker_desc_commit(&info->desc_info[i]); in rocker_dma_ring_pass_to_producer()
989 struct rocker_desc_info *desc_info = &info->desc_info[i]; in rocker_dma_ring_bufs_alloc() local
1007 desc_info->data = buf; in rocker_dma_ring_bufs_alloc()
1008 desc_info->data_size = buf_size; in rocker_dma_ring_bufs_alloc()
1009 dma_unmap_addr_set(desc_info, mapaddr, dma_handle); in rocker_dma_ring_bufs_alloc()
1018 struct rocker_desc_info *desc_info = &info->desc_info[i]; in rocker_dma_ring_bufs_alloc() local
1020 pci_unmap_single(pdev, dma_unmap_addr(desc_info, mapaddr), in rocker_dma_ring_bufs_alloc()
1021 desc_info->data_size, direction); in rocker_dma_ring_bufs_alloc()
1022 kfree(desc_info->data); in rocker_dma_ring_bufs_alloc()
1035 struct rocker_desc_info *desc_info = &info->desc_info[i]; in rocker_dma_ring_bufs_free() local
1040 pci_unmap_single(pdev, dma_unmap_addr(desc_info, mapaddr), in rocker_dma_ring_bufs_free()
1041 desc_info->data_size, direction); in rocker_dma_ring_bufs_free()
1042 kfree(desc_info->data); in rocker_dma_ring_bufs_free()
1107 struct rocker_desc_info *desc_info, in rocker_dma_rx_ring_skb_map() argument
1117 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_RX_FRAG_ADDR, dma_handle)) in rocker_dma_rx_ring_skb_map()
1119 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_RX_FRAG_MAX_LEN, buf_len)) in rocker_dma_rx_ring_skb_map()
1125 desc_info->tlv_size = 0; in rocker_dma_rx_ring_skb_map()
1136 struct rocker_desc_info *desc_info) in rocker_dma_rx_ring_skb_alloc() argument
1146 rocker_desc_cookie_ptr_set(desc_info, NULL); in rocker_dma_rx_ring_skb_alloc()
1147 desc_info->tlv_size = 0; in rocker_dma_rx_ring_skb_alloc()
1152 err = rocker_dma_rx_ring_skb_map(rocker, rocker_port, desc_info, in rocker_dma_rx_ring_skb_alloc()
1158 rocker_desc_cookie_ptr_set(desc_info, skb); in rocker_dma_rx_ring_skb_alloc()
1178 struct rocker_desc_info *desc_info) in rocker_dma_rx_ring_skb_free() argument
1181 struct sk_buff *skb = rocker_desc_cookie_ptr_get(desc_info); in rocker_dma_rx_ring_skb_free()
1185 rocker_tlv_parse_desc(attrs, ROCKER_TLV_RX_MAX, desc_info); in rocker_dma_rx_ring_skb_free()
1199 &rx_ring->desc_info[i]); in rocker_dma_rx_ring_skbs_alloc()
1207 rocker_dma_rx_ring_skb_free(rocker, &rx_ring->desc_info[i]); in rocker_dma_rx_ring_skbs_alloc()
1218 rocker_dma_rx_ring_skb_free(rocker, &rx_ring->desc_info[i]); in rocker_dma_rx_ring_skbs_free()
1313 struct rocker_desc_info *desc_info; in rocker_cmd_irq_handler() local
1318 while ((desc_info = rocker_desc_tail_get(&rocker->cmd_ring))) { in rocker_cmd_irq_handler()
1319 wait = rocker_desc_cookie_ptr_get(desc_info); in rocker_cmd_irq_handler()
1321 rocker_desc_gen_clear(desc_info); in rocker_cmd_irq_handler()
1418 struct rocker_desc_info *desc_info) in rocker_event_process() argument
1424 rocker_tlv_parse_desc(attrs, ROCKER_TLV_EVENT_MAX, desc_info); in rocker_event_process()
1446 struct rocker_desc_info *desc_info; in rocker_event_irq_handler() local
1450 while ((desc_info = rocker_desc_tail_get(&rocker->event_ring))) { in rocker_event_irq_handler()
1451 err = rocker_desc_err(desc_info); in rocker_event_irq_handler()
1456 err = rocker_event_process(rocker, desc_info); in rocker_event_irq_handler()
1461 rocker_desc_gen_clear(desc_info); in rocker_event_irq_handler()
1462 rocker_desc_head_set(rocker, &rocker->event_ring, desc_info); in rocker_event_irq_handler()
1492 struct rocker_desc_info *desc_info,
1501 struct rocker_desc_info *desc_info; in rocker_cmd_exec() local
1512 desc_info = rocker_desc_head_get(&rocker->cmd_ring); in rocker_cmd_exec()
1513 if (!desc_info) { in rocker_cmd_exec()
1518 err = prepare(rocker, rocker_port, desc_info, prepare_priv); in rocker_cmd_exec()
1523 rocker_desc_cookie_ptr_set(desc_info, wait); in rocker_cmd_exec()
1524 rocker_desc_head_set(rocker, &rocker->cmd_ring, desc_info); in rocker_cmd_exec()
1533 err = rocker_desc_err(desc_info); in rocker_cmd_exec()
1538 err = process(rocker, rocker_port, desc_info, process_priv); in rocker_cmd_exec()
1540 rocker_desc_gen_clear(desc_info); in rocker_cmd_exec()
1549 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_prep() argument
1554 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_get_port_settings_prep()
1557 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_get_port_settings_prep()
1560 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_get_port_settings_prep()
1563 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_get_port_settings_prep()
1570 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_ethtool_proc() argument
1580 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_settings_ethtool_proc()
1609 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_macaddr_proc() argument
1617 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_settings_macaddr_proc()
1642 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_settings_phys_name_proc() argument
1652 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_settings_phys_name_proc()
1684 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_settings_ethtool_prep() argument
1690 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_settings_ethtool_prep()
1693 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_settings_ethtool_prep()
1696 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_settings_ethtool_prep()
1699 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_SPEED, in rocker_cmd_set_port_settings_ethtool_prep()
1702 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_DUPLEX, in rocker_cmd_set_port_settings_ethtool_prep()
1705 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_AUTONEG, in rocker_cmd_set_port_settings_ethtool_prep()
1708 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_settings_ethtool_prep()
1715 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_settings_macaddr_prep() argument
1721 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_settings_macaddr_prep()
1724 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_settings_macaddr_prep()
1727 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_settings_macaddr_prep()
1730 if (rocker_tlv_put(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_MACADDR, in rocker_cmd_set_port_settings_macaddr_prep()
1733 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_settings_macaddr_prep()
1740 struct rocker_desc_info *desc_info, in rocker_cmd_set_port_learning_prep() argument
1745 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_set_port_learning_prep()
1748 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_set_port_learning_prep()
1751 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_PPORT, in rocker_cmd_set_port_learning_prep()
1754 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_CMD_PORT_SETTINGS_LEARNING, in rocker_cmd_set_port_learning_prep()
1757 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_set_port_learning_prep()
1802 static int rocker_cmd_flow_tbl_add_ig_port(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_ig_port() argument
1805 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_ig_port()
1808 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT_MASK, in rocker_cmd_flow_tbl_add_ig_port()
1811 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_ig_port()
1818 static int rocker_cmd_flow_tbl_add_vlan(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_vlan() argument
1821 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_vlan()
1824 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_vlan()
1827 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID_MASK, in rocker_cmd_flow_tbl_add_vlan()
1830 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_vlan()
1834 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_NEW_VLAN_ID, in rocker_cmd_flow_tbl_add_vlan()
1841 static int rocker_cmd_flow_tbl_add_term_mac(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_term_mac() argument
1844 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_term_mac()
1847 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT_MASK, in rocker_cmd_flow_tbl_add_term_mac()
1850 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_ETHERTYPE, in rocker_cmd_flow_tbl_add_term_mac()
1853 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_flow_tbl_add_term_mac()
1856 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC_MASK, in rocker_cmd_flow_tbl_add_term_mac()
1859 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_term_mac()
1862 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID_MASK, in rocker_cmd_flow_tbl_add_term_mac()
1865 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_term_mac()
1869 rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_COPY_CPU_ACTION, in rocker_cmd_flow_tbl_add_term_mac()
1877 rocker_cmd_flow_tbl_add_ucast_routing(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_ucast_routing() argument
1880 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_ETHERTYPE, in rocker_cmd_flow_tbl_add_ucast_routing()
1883 if (rocker_tlv_put_be32(desc_info, ROCKER_TLV_OF_DPA_DST_IP, in rocker_cmd_flow_tbl_add_ucast_routing()
1886 if (rocker_tlv_put_be32(desc_info, ROCKER_TLV_OF_DPA_DST_IP_MASK, in rocker_cmd_flow_tbl_add_ucast_routing()
1889 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_ucast_routing()
1892 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_flow_tbl_add_ucast_routing()
1899 static int rocker_cmd_flow_tbl_add_bridge(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_bridge() argument
1903 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_flow_tbl_add_bridge()
1907 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC_MASK, in rocker_cmd_flow_tbl_add_bridge()
1911 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_bridge()
1915 rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_TUNNEL_ID, in rocker_cmd_flow_tbl_add_bridge()
1918 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GOTO_TABLE_ID, in rocker_cmd_flow_tbl_add_bridge()
1921 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_flow_tbl_add_bridge()
1925 rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_COPY_CPU_ACTION, in rocker_cmd_flow_tbl_add_bridge()
1932 static int rocker_cmd_flow_tbl_add_acl(struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add_acl() argument
1935 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT, in rocker_cmd_flow_tbl_add_acl()
1938 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_IN_PPORT_MASK, in rocker_cmd_flow_tbl_add_acl()
1941 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC, in rocker_cmd_flow_tbl_add_acl()
1944 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC_MASK, in rocker_cmd_flow_tbl_add_acl()
1947 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_flow_tbl_add_acl()
1950 if (rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC_MASK, in rocker_cmd_flow_tbl_add_acl()
1953 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_ETHERTYPE, in rocker_cmd_flow_tbl_add_acl()
1956 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_flow_tbl_add_acl()
1959 if (rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID_MASK, in rocker_cmd_flow_tbl_add_acl()
1966 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_IP_PROTO, in rocker_cmd_flow_tbl_add_acl()
1969 if (rocker_tlv_put_u8(desc_info, in rocker_cmd_flow_tbl_add_acl()
1973 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_IP_DSCP, in rocker_cmd_flow_tbl_add_acl()
1976 if (rocker_tlv_put_u8(desc_info, in rocker_cmd_flow_tbl_add_acl()
1980 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_IP_ECN, in rocker_cmd_flow_tbl_add_acl()
1983 if (rocker_tlv_put_u8(desc_info, in rocker_cmd_flow_tbl_add_acl()
1991 rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_flow_tbl_add_acl()
2000 struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_add() argument
2007 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_add()
2009 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_flow_tbl_add()
2012 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_TABLE_ID, in rocker_cmd_flow_tbl_add()
2015 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_PRIORITY, in rocker_cmd_flow_tbl_add()
2018 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_HARDTIME, 0)) in rocker_cmd_flow_tbl_add()
2020 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_OF_DPA_COOKIE, in rocker_cmd_flow_tbl_add()
2026 err = rocker_cmd_flow_tbl_add_ig_port(desc_info, entry); in rocker_cmd_flow_tbl_add()
2029 err = rocker_cmd_flow_tbl_add_vlan(desc_info, entry); in rocker_cmd_flow_tbl_add()
2032 err = rocker_cmd_flow_tbl_add_term_mac(desc_info, entry); in rocker_cmd_flow_tbl_add()
2035 err = rocker_cmd_flow_tbl_add_ucast_routing(desc_info, entry); in rocker_cmd_flow_tbl_add()
2038 err = rocker_cmd_flow_tbl_add_bridge(desc_info, entry); in rocker_cmd_flow_tbl_add()
2041 err = rocker_cmd_flow_tbl_add_acl(desc_info, entry); in rocker_cmd_flow_tbl_add()
2051 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_flow_tbl_add()
2058 struct rocker_desc_info *desc_info, in rocker_cmd_flow_tbl_del() argument
2064 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_flow_tbl_del()
2066 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_flow_tbl_del()
2069 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_OF_DPA_COOKIE, in rocker_cmd_flow_tbl_del()
2072 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_flow_tbl_del()
2078 rocker_cmd_group_tbl_add_l2_interface(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_l2_interface() argument
2081 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_OUT_PPORT, in rocker_cmd_group_tbl_add_l2_interface()
2084 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_POP_VLAN, in rocker_cmd_group_tbl_add_l2_interface()
2092 rocker_cmd_group_tbl_add_l2_rewrite(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_l2_rewrite() argument
2095 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID_LOWER, in rocker_cmd_group_tbl_add_l2_rewrite()
2099 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC, in rocker_cmd_group_tbl_add_l2_rewrite()
2103 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_group_tbl_add_l2_rewrite()
2107 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_group_tbl_add_l2_rewrite()
2115 rocker_cmd_group_tbl_add_group_ids(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_group_ids() argument
2121 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_OF_DPA_GROUP_COUNT, in rocker_cmd_group_tbl_add_group_ids()
2125 group_ids = rocker_tlv_nest_start(desc_info, in rocker_cmd_group_tbl_add_group_ids()
2132 if (rocker_tlv_put_u32(desc_info, i + 1, entry->group_ids[i])) in rocker_cmd_group_tbl_add_group_ids()
2135 rocker_tlv_nest_end(desc_info, group_ids); in rocker_cmd_group_tbl_add_group_ids()
2141 rocker_cmd_group_tbl_add_l3_unicast(struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add_l3_unicast() argument
2145 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_SRC_MAC, in rocker_cmd_group_tbl_add_l3_unicast()
2149 rocker_tlv_put(desc_info, ROCKER_TLV_OF_DPA_DST_MAC, in rocker_cmd_group_tbl_add_l3_unicast()
2153 rocker_tlv_put_be16(desc_info, ROCKER_TLV_OF_DPA_VLAN_ID, in rocker_cmd_group_tbl_add_l3_unicast()
2156 if (rocker_tlv_put_u8(desc_info, ROCKER_TLV_OF_DPA_TTL_CHECK, in rocker_cmd_group_tbl_add_l3_unicast()
2159 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID_LOWER, in rocker_cmd_group_tbl_add_l3_unicast()
2168 struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_add() argument
2175 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_add()
2177 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_group_tbl_add()
2181 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_group_tbl_add()
2187 err = rocker_cmd_group_tbl_add_l2_interface(desc_info, entry); in rocker_cmd_group_tbl_add()
2190 err = rocker_cmd_group_tbl_add_l2_rewrite(desc_info, entry); in rocker_cmd_group_tbl_add()
2194 err = rocker_cmd_group_tbl_add_group_ids(desc_info, entry); in rocker_cmd_group_tbl_add()
2197 err = rocker_cmd_group_tbl_add_l3_unicast(desc_info, entry); in rocker_cmd_group_tbl_add()
2207 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_group_tbl_add()
2214 struct rocker_desc_info *desc_info, in rocker_cmd_group_tbl_del() argument
2220 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, entry->cmd)) in rocker_cmd_group_tbl_del()
2222 cmd_info = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_group_tbl_del()
2225 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_OF_DPA_GROUP_ID, in rocker_cmd_group_tbl_del()
2228 rocker_tlv_nest_end(desc_info, cmd_info); in rocker_cmd_group_tbl_del()
3875 struct rocker_desc_info *desc_info) in rocker_tx_desc_frags_unmap() argument
3883 rocker_tlv_parse_desc(attrs, ROCKER_TLV_TX_MAX, desc_info); in rocker_tx_desc_frags_unmap()
3905 struct rocker_desc_info *desc_info, in rocker_tx_desc_frag_map_put() argument
3919 frag = rocker_tlv_nest_start(desc_info, ROCKER_TLV_TX_FRAG); in rocker_tx_desc_frag_map_put()
3922 if (rocker_tlv_put_u64(desc_info, ROCKER_TLV_TX_FRAG_ATTR_ADDR, in rocker_tx_desc_frag_map_put()
3925 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_TX_FRAG_ATTR_LEN, in rocker_tx_desc_frag_map_put()
3928 rocker_tlv_nest_end(desc_info, frag); in rocker_tx_desc_frag_map_put()
3932 rocker_tlv_nest_cancel(desc_info, frag); in rocker_tx_desc_frag_map_put()
3942 struct rocker_desc_info *desc_info; in rocker_port_xmit() local
3947 desc_info = rocker_desc_head_get(&rocker_port->tx_ring); in rocker_port_xmit()
3948 if (unlikely(!desc_info)) { in rocker_port_xmit()
3954 rocker_desc_cookie_ptr_set(desc_info, skb); in rocker_port_xmit()
3956 frags = rocker_tlv_nest_start(desc_info, ROCKER_TLV_TX_FRAGS); in rocker_port_xmit()
3959 err = rocker_tx_desc_frag_map_put(rocker_port, desc_info, in rocker_port_xmit()
3969 err = rocker_tx_desc_frag_map_put(rocker_port, desc_info, in rocker_port_xmit()
3975 rocker_tlv_nest_end(desc_info, frags); in rocker_port_xmit()
3977 rocker_desc_gen_clear(desc_info); in rocker_port_xmit()
3978 rocker_desc_head_set(rocker, &rocker_port->tx_ring, desc_info); in rocker_port_xmit()
3980 desc_info = rocker_desc_head_get(&rocker_port->tx_ring); in rocker_port_xmit()
3981 if (!desc_info) in rocker_port_xmit()
3987 rocker_tx_desc_frags_unmap(rocker_port, desc_info); in rocker_port_xmit()
3989 rocker_tlv_nest_cancel(desc_info, frags); in rocker_port_xmit()
4341 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_stats_prep() argument
4346 if (rocker_tlv_put_u16(desc_info, ROCKER_TLV_CMD_TYPE, in rocker_cmd_get_port_stats_prep()
4350 cmd_stats = rocker_tlv_nest_start(desc_info, ROCKER_TLV_CMD_INFO); in rocker_cmd_get_port_stats_prep()
4354 if (rocker_tlv_put_u32(desc_info, ROCKER_TLV_CMD_PORT_STATS_PPORT, in rocker_cmd_get_port_stats_prep()
4358 rocker_tlv_nest_end(desc_info, cmd_stats); in rocker_cmd_get_port_stats_prep()
4366 struct rocker_desc_info *desc_info, in rocker_cmd_get_port_stats_ethtool_proc() argument
4376 rocker_tlv_parse_desc(attrs, ROCKER_TLV_CMD_MAX, desc_info); in rocker_cmd_get_port_stats_ethtool_proc()
4459 struct rocker_desc_info *desc_info; in rocker_port_poll_tx() local
4464 while ((desc_info = rocker_desc_tail_get(&rocker_port->tx_ring))) { in rocker_port_poll_tx()
4467 err = rocker_desc_err(desc_info); in rocker_port_poll_tx()
4471 rocker_tx_desc_frags_unmap(rocker_port, desc_info); in rocker_port_poll_tx()
4473 skb = rocker_desc_cookie_ptr_get(desc_info); in rocker_port_poll_tx()
4495 struct rocker_desc_info *desc_info) in rocker_port_rx_proc() argument
4498 struct sk_buff *skb = rocker_desc_cookie_ptr_get(desc_info); in rocker_port_rx_proc()
4504 rocker_tlv_parse_desc(attrs, ROCKER_TLV_RX_MAX, desc_info); in rocker_port_rx_proc()
4519 return rocker_dma_rx_ring_skb_alloc(rocker, rocker_port, desc_info); in rocker_port_rx_proc()
4531 struct rocker_desc_info *desc_info; in rocker_port_poll_rx() local
4537 (desc_info = rocker_desc_tail_get(&rocker_port->rx_ring))) { in rocker_port_poll_rx()
4538 err = rocker_desc_err(desc_info); in rocker_port_poll_rx()
4545 desc_info); in rocker_port_poll_rx()
4553 rocker_desc_gen_clear(desc_info); in rocker_port_poll_rx()
4554 rocker_desc_head_set(rocker, &rocker_port->rx_ring, desc_info); in rocker_port_poll_rx()