diff options
author | Ben Warren <ben@skyportsystems.com> | 2016-04-04 21:32:02 -0400 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2016-04-14 10:18:36 -0700 |
commit | b2bd6da6367f8112ea183edc184ef3fe998917f9 (patch) | |
tree | 5a1b5b4734b2feb3eaffed54a821661f264445dc /include | |
parent | b44aaaaff8d826535025f4f8d12808c4ef36a7a8 (diff) | |
download | openvswitch-b2bd6da6367f8112ea183edc184ef3fe998917f9.tar.gz |
Break packets.h into private and public parts
Public (struct definitions and some prototypes) go in
include/openvswitch
Signed-off-by: Ben Warren <ben@skyportsystems.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/openvswitch/automake.mk | 1 | ||||
-rw-r--r-- | include/openvswitch/packets.h | 64 |
2 files changed, 65 insertions, 0 deletions
diff --git a/include/openvswitch/automake.mk b/include/openvswitch/automake.mk index 8d253f364..fc183ffbc 100644 --- a/include/openvswitch/automake.mk +++ b/include/openvswitch/automake.mk @@ -7,6 +7,7 @@ openvswitchinclude_HEADERS = \ include/openvswitch/ofpbuf.h \ include/openvswitch/ofp-errors.h \ include/openvswitch/ofp-parse.h \ + include/openvswitch/packets.h \ include/openvswitch/thread.h \ include/openvswitch/token-bucket.h \ include/openvswitch/tun-metadata.h \ diff --git a/include/openvswitch/packets.h b/include/openvswitch/packets.h new file mode 100644 index 000000000..5d97309a9 --- /dev/null +++ b/include/openvswitch/packets.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc. + * + * 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 OPENVSWITCH_PACKETS_H +#define OPENVSWITCH_PACKETS_H 1 + +#include <netinet/in.h> +#include "openvswitch/tun-metadata.h" + +/* Tunnel information used in flow key and metadata. */ +struct flow_tnl { + ovs_be32 ip_dst; + struct in6_addr ipv6_dst; + ovs_be32 ip_src; + struct in6_addr ipv6_src; + ovs_be64 tun_id; + uint16_t flags; + uint8_t ip_tos; + uint8_t ip_ttl; + ovs_be16 tp_src; + ovs_be16 tp_dst; + ovs_be16 gbp_id; + uint8_t gbp_flags; + uint8_t pad1[5]; /* Pad to 64 bits. */ + struct tun_metadata metadata; +}; + +/* Some flags are exposed through OpenFlow while others are used only + * internally. */ + +/* Public flags */ +#define FLOW_TNL_F_OAM (1 << 0) + +#define FLOW_TNL_PUB_F_MASK ((1 << 1) - 1) + +/* Private flags */ +#define FLOW_TNL_F_DONT_FRAGMENT (1 << 1) +#define FLOW_TNL_F_CSUM (1 << 2) +#define FLOW_TNL_F_KEY (1 << 3) + +#define FLOW_TNL_F_MASK ((1 << 4) - 1) + +/* Unfortunately, a "struct flow" sometimes has to handle OpenFlow port + * numbers and other times datapath (dpif) port numbers. This union allows + * access to both. */ +union flow_in_port { + odp_port_t odp_port; + ofp_port_t ofp_port; +}; + +#endif /* packets.h */ |