From c4abafd83df38051765352785b146277734701f4 Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Wed, 4 Sep 2019 12:09:32 -0400 Subject: ip: fix udp/tcp checksum corner cases When checksumming chained buffers with odd lengths: insert a NULL byte, or the calculation fails. Type: fix Signed-off-by: Dave Barach Signed-off-by: John Lo Change-Id: I380f7c42897bdb28c8c29aa1c4cdaaa849cc9ecc --- src/plugins/oddbuf/oddbuf.api | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/plugins/oddbuf/oddbuf.api (limited to 'src/plugins/oddbuf/oddbuf.api') diff --git a/src/plugins/oddbuf/oddbuf.api b/src/plugins/oddbuf/oddbuf.api new file mode 100644 index 00000000000..32f91548ea2 --- /dev/null +++ b/src/plugins/oddbuf/oddbuf.api @@ -0,0 +1,51 @@ +/* + * oddbuf.api - binary API skeleton + * + * Copyright (c) + * 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. + */ + +/** + * @file oddbuf.api + * @brief VPP control-plane API messages. + * + * This file defines VPP control-plane binary API messages which are generally + * called through a shared memory interface. + */ + +/* Version and type recitations */ + +option version = "0.1.0"; +import "vnet/interface_types.api"; + + +/** @brief API to enable / disable oddbuf on an interface + @param client_index - opaque cookie to identify the sender + @param context - sender context, to match reply w/ request + @param enable_disable - 1 to enable, 0 to disable the feature + @param sw_if_index - interface handle +*/ + +autoreply define oddbuf_enable_disable { + /* Client identifier, set from api_main.my_client_index */ + u32 client_index; + + /* Arbitrary context, so client can match reply to request */ + u32 context; + + /* Enable / disable the feature */ + bool enable_disable; + + /* Interface handle */ + vl_api_interface_index_t sw_if_index; +}; -- cgit 1.2.3-korg