summaryrefslogtreecommitdiff
path: root/src/tools/oping
Commit message (Collapse)AuthorAgeFilesLines
...
* ouroboros: Correct license statementsdimitri staessens2016-12-243-9/+6
| | | | | This corrects the license statements on all files. Installed headers are LGPLv2.1, the rest of the code is GPLv2.
* src, tools: Set/get timeout and get qos for flowsdimitri staessens2016-12-123-76/+46
| | | | | | | | | | | | | | | | Receiver timeouts can now be set on a flow using the flow_set_timeout function. Specifying NULL disables the timeout. The flow_get_timeout function gets the value for the timeout. This commit also deprecates fcntl in favor of flow_get_flags and flow_set_flags functions. struct qos_spec is typedef'd as a qosspec_t. The tools and cdap.c are updated to use the new API. Fixes a bug in operf client where the client's writer thread wouldn't cancel on SIGINT.
* tools: Fix compilation issues on 32 bit machinesdimitri staessens2016-12-022-7/+8
| | | | | | size_t is 32 bits on those machines, failing as an argument to printf. Some variables in oping and operf were changed to uint32_t and uint64_t to avoid issues.
* tools: Fix parameters in oping tooldimitri staessens2016-10-301-4/+5
|
* lib: Clean up flow if alloc_res failsdimitri staessens2016-10-271-37/+64
| | | | | | | | | If alloc_res fails all resources will be cleaned, except for the assigned flow_descriptor, which must be released with a dealloc call. Calling dealloc after a failed flow_alloc will not try to destroy the already cleaned up flow in the IRMd and IPCPs. Also fixes some memleaks in the oping client.
* lib: API for accepting flows with QoSdimitri staessens2016-10-251-1/+2
|
* tools: Fix memory leaks in opingdimitri staessens2016-10-243-17/+26
|
* tools: Fix setting flags in oping tooldimitri staessens2016-10-231-1/+1
|
* build: Compile with strict conversiondimitri staessens2016-10-223-12/+12
| | | | | This has the code checked with -Wcast-qual and -Wconversion flags. These flags were removed because SWIG generated code fails.
* build: Comply with -Wextra compiler flagdimitri staessens2016-10-212-1/+15
| | | | | This reduces the risk for some bugs, for instance due to signed/unsigned mismatches and unused variables.
* lib: Demultiplex the fast pathdimitri staessens2016-10-213-17/+33
| | | | | | | | The fast path will now use an incoming ring buffer per flow per process. This necessitated the development of a new method for the asynchronous io call, which is now based on an event queue system for scalability (fqueue). The ipcpd's and tools have been updated to this API.
* lib: Add a type for struct flow_setdimitri staessens2016-10-093-5/+3
| | | | | | The struct flow_set can now be accessed in applications as flow_set_t. Fixes some malformed lines and homogenizes output when receiving bad SDUs in the oping tool.
* ipcpd: Filter traffic on shim-eth-llcdimitri staessens2016-10-062-1/+3
| | | | Now correctly handles and drops non-ouroboros traffic.
* lib, ipcp: Revise fast path and flow interfacesdimitri staessens2016-10-041-1/+2
| | | | | | | | | | | | IPCPs can now use ap_init() to initialize the memory. All flows are accessed using flow descriptors, this greatly simplifies IPCP development. Reverts the fast path to a single ap_rbuff per process. Splits lib/ipcp into irmd/ipcp and lib/ipcp-dev. Adds a lib/shim-dev holding tailored functions for shims. Moves the buffer_t to utils.h. Fixes the shim-eth-llc length field. Removes the flow from shared.h. Fixes #4 Fixes #5
* lib: dev: Provide a set of fds to flow_selectdimitri staessens2016-09-063-14/+23
| | | | | | | The flow_select call now takes as a parameter a flow_set_t, which specifies a set of flow descriptors that will unblock the select call when an SDU for one of them arrives. The select call has been moved to its own header.
* src: Fix grammar (SDU's -> SDUs)dimitri staessens2016-09-021-1/+1
|
* irmd, lib: Rebuild the IRMd data modeldimitri staessens2016-08-212-10/+20
| | | | | | | | | | | | | | | | | | | | | | The complete data model inside the IRMd has been restructured. The bind operation was revised to allow binding of AP and AP instances and register those names with different DIFs (see "irm bind" for details). Server applications require to call ap_init with a server name argument, client application that do not the be reachable over any DIF can call ap_init(NULL). Calling ap_init for a client with a specified name will not have adverse consequences for the application, but will consume unnecessary resources in the IRMd. Application servers can now be started at any point after the IRMd has been started. Starting servers, binding AP names and registering names in DIFs can be performed in any order that does not defy temporal logic. Supports naming instances by their pid. In case of IPCP Instances created with the IRM tool, the name assigned during "irm ipcp create" can be used. All the changes required updates in the tools.
* lib, irmd: Bind AP instances to AP_subsetsdimitri staessens2016-08-101-0/+5
| | | | | | | This call will allow grouping AP instances of a certain AP together which are configured identically. Adds the bind operation to dev and updates the applications to make use of this call. Flow_alloc is now only called with the pid and doesn't send the apn anymore.
* tools: oping: Fix wrong delay calculationdimitri staessens2016-08-061-1/+2
|
* tools: oping: Fix client cleanupdimitri staessens2016-08-041-0/+5
|
* tools: oping: Fix cleanup on exitdimitri staessens2016-08-041-3/+5
| | | | The server should cleanup whenever the listen thread exits.
* tools: oping: Fix division by zerodimitri staessens2016-08-041-9/+14
| | | | | When killing the oping client before it sent an SDU, some bad operations were being performed.
* tools: Add a ping applicationdimitri staessens2016-08-034-0/+593
Ouoroboros ping application mimics the GNU ping application. do "oping --help" for options.