diff options
Diffstat (limited to 'src/vnet/flow/flow_report_classify.h')
-rw-r--r-- | src/vnet/flow/flow_report_classify.h | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/src/vnet/flow/flow_report_classify.h b/src/vnet/flow/flow_report_classify.h deleted file mode 100644 index 0533b450122..00000000000 --- a/src/vnet/flow/flow_report_classify.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (c) 2015 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#ifndef __included_flow_report_classify_h__ -#define __included_flow_report_classify_h__ - -#define foreach_ipfix_ip4_field \ -_(ip->src_address.as_u32, ((u32[]){0xFFFFFFFF}), sourceIPv4Address, 4) \ -_(ip->dst_address.as_u32, ((u32[]){0xFFFFFFFF}), destinationIPv4Address, 4) \ -_(ip->protocol, ((u8[]){0xFF}), protocolIdentifier, 1) - -#define foreach_ipfix_ip6_field \ -_(ip6->src_address.as_u8, \ - ((u32[]){0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}), \ - sourceIPv6Address, 16) \ -_(ip6->dst_address.as_u8, \ - ((u32[]){0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF}), \ - destinationIPv6Address, 16) \ -_(ip6->protocol, ((u8[]){0xFF}), protocolIdentifier, 1) - -#define foreach_ipfix_tcpudp_field \ -_(tcpudp->src_port, ((u16[]){0xFFFF}), sourceTransportPort, 2) \ -_(tcpudp->dst_port, ((u16[]){0xFFFF}), destinationTransportPort, 2) - -#define foreach_ipfix_tcp_field \ -_(tcpudp->src_port, ((u16[]){0xFFFF}), tcpSourcePort, 2) \ -_(tcpudp->dst_port, ((u16[]){0xFFFF}), tcpDestinationPort, 2) - -#define foreach_ipfix_udp_field \ -_(tcpudp->src_port, ((u16[]){0xFFFF}), udpSourcePort, 2) \ -_(tcpudp->dst_port, ((u16[]){0xFFFF}), udpDestinationPort, 2) - -#define foreach_ipfix_transport_protocol_field \ - switch (transport_protocol) { \ - case 255: \ - foreach_ipfix_tcpudp_field; \ - break; \ - case 6: \ - foreach_ipfix_tcp_field; \ - break; \ - case 17: \ - foreach_ipfix_udp_field; \ - break; \ - } - -#define foreach_ipfix_field \ - if (ip_version == 4) { \ - ip = (ip4_header_t *)ip_start; \ - tcpudp = (tcpudp_header_t *)(ip+1); \ - foreach_ipfix_ip4_field; \ - } else { \ - ip6 = (ip6_header_t *)ip_start; \ - tcpudp = (tcpudp_header_t *)(ip6+1); \ - foreach_ipfix_ip6_field; \ - } \ - foreach_ipfix_transport_protocol_field - -typedef struct -{ - u32 classify_table_index; - u8 ip_version; - u8 transport_protocol; -} ipfix_classify_table_t; - -typedef struct -{ - u32 domain_id; - u16 src_port; - ipfix_classify_table_t *tables; -} flow_report_classify_main_t; - -extern flow_report_classify_main_t flow_report_classify_main; - -static_always_inline u8 -ipfix_classify_table_index_valid (u32 index) -{ - flow_report_classify_main_t *fcm = &flow_report_classify_main; - return index < vec_len (fcm->tables) && - fcm->tables[index].classify_table_index != ~0; -} - -static_always_inline ipfix_classify_table_t * -ipfix_classify_add_table (void) -{ - flow_report_classify_main_t *fcm = &flow_report_classify_main; - u32 i; - for (i = 0; i < vec_len (fcm->tables); i++) - if (!ipfix_classify_table_index_valid (i)) - return &fcm->tables[i]; - u32 index = vec_len (fcm->tables); - vec_validate (fcm->tables, index); - return &fcm->tables[index]; -} - -static_always_inline void -ipfix_classify_delete_table (u32 index) -{ - flow_report_classify_main_t *fcm = &flow_report_classify_main; - ASSERT (index < vec_len (fcm->tables)); - ASSERT (fcm->tables[index].classify_table_index != ~0); - fcm->tables[index].classify_table_index = ~0; -} - -u8 *ipfix_classify_template_rewrite (flow_report_main_t * frm, - flow_report_t * fr, - ip4_address_t * collector_address, - ip4_address_t * src_address, - u16 collector_port); - -vlib_frame_t *ipfix_classify_send_flows (flow_report_main_t * frm, - flow_report_t * fr, - vlib_frame_t * f, - u32 * to_next, u32 node_index); - -#endif /* __included_flow_report_classify_h__ */ - -/* - * fd.io coding-style-patch-verification: ON - * - * Local Variables: - * eval: (c-set-style "gnu") - * End: - */ |