summaryrefslogtreecommitdiffstats
path: root/docs/glossary/index.rst
blob: be5b6d7327783f1c6bed5f7f70a9309af47bb681 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. (c) Christopher Price (Ericsson AB)

**************
OPNFV Glossary
**************

========
Contents
========

This glossary provides a common definition of phrases and words commonly used in OPNFV.

--------

A
-

Arno

  A river running through Tuscany and the name of the first OPNFV release.

API
    Application Programming Interface

--------

B
-

Brahmaputra

  A river running through Asia and the name of the Second OPNFV release.

--------

C
-

Colorado

  A river in Argentina and the name of the Third OPNFV release.

--------

D
-

DPDK

  Data Plane Development Kit

DPI

  Deep Packet Inspection

DSCP

  Differentiated Services Code Point

--------

I
-

IGMP

  Internet Group Management Protocol

IOPS

  Input/Output Operations Per Second

--------

N
-

NFV

  Network Functions Virtualisation, an industry initiative to leverage virtualisation technologies in carrier networks.

NFVI

  Network Function Virtualization Infrastructure

NIC

  Network Interface Controller

--------

O
-

OPNFV

  Open Platform for NFV, an open source project developing an NFV reference platform and features.

--------

V
-

VLAN

  A virtual local area network, typically an isolated ethernet network.

VM

  Virtual machine, an emulation in software of a computer system.

VNF

  Virtual network function, typically a networking application or function running in a virtual environment.
0.1:7555') """ self.url = nfvbench_url self.use_socketio = use_socketio def socketio_send(self, send_event, receive_event, config, timeout): class Exec(object): socketIO = None socketio_result = None def close_socketio(result): Exec.socketio_result = result Exec.socketIO.disconnect() def on_response(*args): close_socketio(args[0]) def on_error(*args): raise NfvbenchException(args[0]) Exec.socketIO = SocketIO(self.url) Exec.socketIO.on(receive_event, on_response) Exec.socketIO.on('error', on_error) Exec.socketIO.emit(send_event, config) Exec.socketIO.wait(seconds=timeout) if timeout and not Exec.socketio_result: raise TimeOutException() return Exec.socketio_result def http_get(self, command, config): url = self.url + '/' + command res = requests.get(url, json=config) if res.ok: return res.json() res.raise_for_status() def http_post(self, command, config): url = self.url + '/' + command res = requests.post(url, json=config) if res.ok: return res.json() res.raise_for_status() def echo_config(self, config, timeout=100): """Send an echo event to the nfvbench server with some dummy config and expect the config to be sent back right away. Args: config: some dummy configuration - must be a valid dict timeout: how long to wait in seconds or 0 to return immediately, defaults to 100 seconds Returns: The config as passed as a dict or None if timeout passed is 0 Raises: NfvbenchException: the execution of the passed configuration failed, the body of the exception containes the description of the failure. TimeOutException: the request timed out (and might still being executed by the server) """ if self.use_socketio: return self.socketio_send('echo', 'echo', config, timeout) return self.http_get('echo', config) def run_config(self, config, timeout=300, poll_interval=5): """Request an nfvbench configuration to be executed by the nfvbench server. This function will block the caller until the request completes or the request times out. It can return immediately if timeout is set to 0. Note that running a configuration may take a while depending on the amount of work requested - so set the timeout value to an appropriate value. Args: config: the nfvbench configuration to execute - must be a valid dict with valid nfvbench attributes timeout: how long to wait in seconds or 0 to return immediately, defaults to 300 seconds poll_interval: seconds between polling (http only) - defaults to every 5 seconds Returns: The result of the nfvbench execution or None if timeout passed is 0 The function will return as soon as the request is completed or when the timeout occurs (whichever is first). Raises: NfvbenchException: the execution of the passed configuration failed, the body of the exception contains the description of the failure. TimeOutException: the request timed out but will still be executed by the server. """ if self.use_socketio: return self.socketio_send('start_run', 'run_end', config, timeout) res = self.http_post('start_run', config) if res['status'] != 'PENDING': raise NfvbenchException(res['error_message']) # poll until request completes elapsed = 0 while True: time.sleep(poll_interval) result = self.http_get('status', config) if result['status'] != 'PENDING': return result elapsed += poll_interval if elapsed >= timeout: raise TimeOutException()