summaryrefslogtreecommitdiffstats
path: root/VNFs/vCGNAPT/pipeline/pipeline_cgnapt.h
diff options
context:
space:
mode:
Diffstat (limited to 'VNFs/vCGNAPT/pipeline/pipeline_cgnapt.h')
-rw-r--r--VNFs/vCGNAPT/pipeline/pipeline_cgnapt.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt.h b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt.h
new file mode 100644
index 00000000..5491648a
--- /dev/null
+++ b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt.h
@@ -0,0 +1,138 @@
+/*
+// Copyright (c) 2017 Intel Corporation
+//
+// 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 __INCLUDE_PIPELINE_CGNAPT_H__
+#define __INCLUDE_PIPELINE_CGNAPT_H__
+
+/**
+ * @file
+ * Pipeline CG-NAPT FE.
+ *
+ * PipelineCG-NAPT Front End (FE).
+ * Runs on the Master pipeline, responsible for CLI commands.
+ *
+ */
+
+#include "pipeline.h"
+#include "pipeline_cgnapt_common.h"
+
+/**
+ * Add NAPT rule to the NAPT rule table.
+ * Both IPv4 and IPv6 rules can be added.
+ *
+ * @param app
+ * A pointer to the pipeline app parameters.
+ * @param pipeline_id
+ * Pipeline id
+ * @param key
+ * A pointer to the NAPT key corresponding to the entry being added.
+ * @param entry_params
+ * A pointer to the NAPT entry being added.
+ *
+ * @return
+ * 0 on success, negative on error.
+ */
+#if 0
+int
+app_pipeline_cgnapt_add_entry(struct app_params *app,
+ uint32_t pipeline_id,
+ struct pipeline_cgnapt_entry_key *key,
+ struct app_pipeline_cgnapt_entry_params
+ *entry_params);
+#endif
+int app_pipeline_cgnapt_add_entry(
+ struct app_params *app,
+ uint32_t pipeline_id,
+ struct app_pipeline_cgnapt_entry_params *entry_params);
+/**
+ * Delete NAPT rule from the NAPT rule table.
+ * Both IPv4 and IPv6 rules can be added.
+ *
+ * @param app
+ * A pointer to the pipeline app parameters.
+ * @param pipeline_id
+ * Pipeline id
+ * @param key
+ * A pointer to the NAPT key corresponding to the entry being added.
+ *
+ * @return
+ * 0 on success, negative on error.
+ */
+int
+app_pipeline_cgnapt_delete_entry(struct app_params *app,
+ uint32_t pipeline_id,
+ struct pipeline_cgnapt_entry_key *key);
+
+/**
+ * Add multiple NAPT rule to the NAPT rule table.
+ * Both IPv4 and IPv6 rules can be added.
+ *
+ * @param app
+ * A pointer to the pipeline app parameters.
+ * @param pipeline_id
+ * Pipeline id
+ * @param entry_params
+ * A pointer to the multiple NAPT entry params being added.
+ *
+ * @return
+ * 0 on success, negative on error.
+ */
+int app_pipeline_cgnapt_addm_entry(struct app_params *app, uint32_t pipeline_id,
+ struct app_pipeline_cgnapt_mentry_params
+ *entry_params);
+
+/**
+ * Add Network Specific Prefix for NAT64.
+ *
+ * @param app
+ * A pointer to the pipeline app parameters.
+ * @param pipeline_id
+ * Pipeline id
+ * @param nsp
+ * A pointer to NSP being added.
+ *
+ * @return
+ * 0 on success, negative on error.
+ */
+int
+app_pipeline_cgnapt_nsp_add_entry(struct app_params *app,
+ uint32_t pipeline_id,
+ struct pipeline_cgnapt_nsp_t *nsp);
+
+/**
+ * Delete a Network Specific Prefix for NAT64.
+ *
+ * @param app
+ * A pointer to the pipeline app parameters.
+ * @param pipeline_id
+ * Pipeline id
+ * @param nsp
+ * A pointer to NSP being deleted.
+ *
+ * @return
+ * 0 on success, negative on error.
+ */
+int
+app_pipeline_cgnapt_nsp_del_entry(struct app_params *app,
+ uint32_t pipeline_id,
+ struct pipeline_cgnapt_nsp_t *nsp);
+
+/*
+ * Pipeline type
+ */
+extern struct pipeline_type pipeline_cgnapt;
+
+#endif