SpiNNFrontEndCommon 7.3.1
Common support code for user-facing front end systems.
Loading...
Searching...
No Matches
Data Structures | Macros | Enumerations | Functions | Variables
reverse_iptag_multicast_source.c File Reference

The implementation of the Reverse IP tag Multicast Source. More...

#include <common-typedefs.h>
#include <data_specification.h>
#include <debug.h>
#include <simulation.h>
#include <sark.h>
#include <eieio.h>
#include <buffered_eieio_defs.h>
#include "recording.h"
#include <wfi.h>

Go to the source code of this file.

Data Structures

struct  config
 The configuration parameters for the application. More...
 
struct  ripmcs_provenance_t
 The provenance data items. More...
 
struct  recorded_packet_t
 What information is recorded about a packet. More...
 
struct  req_packet_sdp_t
 An EIEIO request-for-more-space message. More...
 

Macros

#define NUMBER_OF_REGIONS_TO_RECORD   1
 The number of regions that can be recorded.
 
#define SPIKE_HISTORY_CHANNEL   0
 The recording channel used to track the history of what spikes were sent.
 
#define MIN_BUFFER_SPACE   10
 the minimum space required for a buffer to work
 
#define TICKS_BETWEEN_REQUESTS   25
 the amount of ticks to wait between requests
 
#define MAX_PACKET_SIZE   272
 the maximum size of a packet excluding header
 
#define BITS(value, shift, mask)    (((value) >> (shift)) & (mask))
 Extract a field from a bitfield value.
 

Enumerations

enum  interrupt_priorities { DMA = 0 , SDP_CALLBACK = 1 , TIMER = 2 }
 human readable versions of the different priorities and usages. More...
 
enum  region_ids {
  SYSTEM , CONFIGURATION , RECORDING_REGION , BUFFER_REGION ,
  PROVENANCE_REGION
}
 The memory regions. More...
 

Functions

static uint16_t calculate_eieio_packet_command_size (const eieio_msg_t eieio_msg_ptr)
 What is the size of a command message?
 
static uint16_t calculate_eieio_packet_event_size (const eieio_msg_t eieio_msg_ptr)
 What is the size of an event message?
 
static uint16_t calculate_eieio_packet_size (eieio_msg_t eieio_msg_ptr)
 What is the size of a message?
 
static void print_packet_bytes (eieio_msg_t eieio_msg_ptr, uint16_t length)
 Dumps a message to IOBUF if debug messages are enabled.
 
static void print_packet (const eieio_msg_t eieio_msg_ptr)
 Dumps a message to IOBUF if debug messages are enabled.
 
static void signal_software_error (const eieio_msg_t eieio_msg_ptr, uint16_t length)
 Flags up that bad input was received.
 
static uint32_t get_sdram_buffer_space_available (void)
 Computes how much space is available in the buffer.
 
static bool is_eieio_packet_in_buffer (void)
 Whether we have a packet in the buffer.
 
static uint32_t extract_time_from_eieio_msg (const eieio_msg_t eieio_msg_ptr)
 Get the time from a message.
 
static bool add_eieio_packet_to_sdram (const eieio_msg_t eieio_msg_ptr, uint32_t length)
 Places a packet into the buffer.
 
static void process_16_bit_packets (const uint16_t *event_pointer, bool pkt_prefix_upper, uint32_t pkt_count, uint32_t pkt_key_prefix, uint32_t pkt_payload_prefix, bool pkt_has_payload, bool pkt_payload_is_timestamp)
 Handle an SDP message containing 16 bit events. The events are converted into SpiNNaker multicast packets and sent.
 
static void process_32_bit_packets (const uint16_t *event_pointer, uint32_t pkt_count, uint32_t pkt_key_prefix, uint32_t pkt_payload_prefix, bool pkt_has_payload, bool pkt_payload_is_timestamp)
 Handle an SDP message containing 32 bit events. The events are converted into SpiNNaker multicast packets and sent.
 
static void record_packet (const eieio_msg_t eieio_msg_ptr, uint32_t length)
 Asynchronously record an EIEIO message.
 
static bool eieio_data_parse_packet (const eieio_msg_t eieio_msg_ptr, uint32_t length)
 Parses an EIEIO message.
 
static void eieio_command_parse_stop_requests (const eieio_msg_t eieio_msg_ptr, uint16_t length)
 Handle the command to stop parsing requests.
 
static void eieio_command_parse_start_requests (const eieio_msg_t eieio_msg_ptr, uint16_t length)
 Handle the command to start parsing requests.
 
static void eieio_command_parse_sequenced_data (const eieio_msg_t eieio_msg_ptr, uint16_t length)
 Handle the command to store a request for later processing.
 
static bool eieio_commmand_parse_packet (const eieio_msg_t eieio_msg_ptr, uint16_t length)
 Handle a command message.
 
static bool packet_handler_selector (const eieio_msg_t eieio_msg_ptr, uint16_t length)
 Handle an EIEIO message, which can either be a command or an event description message.
 
static void fetch_and_process_packet (void)
 Process a stored packet.
 
static void send_buffer_request_pkt (void)
 Sends a message saying what our state is.
 
static bool read_parameters (struct config *config)
 Reads our configuration region.
 
static bool setup_buffer_region (uint8_t *region_address)
 Initialises the buffer region.
 
static bool initialise_recording (void)
 Initialises the recording parts of the model.
 
static void provenance_callback (address_t address)
 Writes our provenance data into the provenance region.
 
static bool initialise (uint32_t *timer_period)
 Initialises the application.
 
static void resume_callback (void)
 Reinitialises the application after it was paused.
 
static void timer_callback (uint unused0, uint unused1)
 The fundamental operation loop for the application.
 
static void sdp_packet_callback (uint mailbox, uint port)
 Handles an incoming SDP message.
 
void c_main (void)
 Entry point.
 

Variables

static uint32_t time
 Current simulation time.
 
static uint32_t simulation_ticks
 The time that the simulation is scheduled to stop at.
 
static uint32_t infinite_run
 True if the simulation will "run forever" (until user interrupt).
 
static bool apply_prefix
 If a prefix should be applied.
 
static bool check_key_in_space
 Whether only packets with keys in the masked key space should be sent.
 
static uint32_t prefix
 The prefix to apply.
 
static bool has_key
 Whether a key is present; nothing is sent if no key is present.
 
static uint32_t key_space
 Pattern of keys that must be matched when check_key_in_space is true.
 
static uint32_t mask
 Mask for keys to determine if the key matches the key_space.
 
static uint32_t last_stop_notification_request
 DEBUG: time of last stop notification.
 
static eieio_prefix_types prefix_type
 How to apply the prefix.
 
static uint32_t buffer_region_size
 Size of buffer in buffer_region.
 
static uint32_t space_before_data_request
 Threshold at which we ask for buffers to be cleared.
 
static ripmcs_provenance_t provenance = {0}
 The provenance information that we're collecting.
 
static uint32_t recording_flags = 0
 Keeps track of which types of recording should be done to this model.
 
static uint8_tbuffer_region
 Points to the buffer used to store data being collected to transfer out.
 
static uint8_tend_of_buffer_region
 Points to the end of the buffer (to first byte that must not be written)
 
static uint8_twrite_pointer
 Points to next byte to write in buffer_region.
 
static uint8_tread_pointer
 Points to next byte to read in buffer_region.
 
static sdp_msg_t sdp_host_req
 An SDP message ready to send to host.
 
static req_packet_sdp_treq_ptr
 Payload part of sdp_host_req.
 
static eieio_msg_t msg_from_sdram
 DTCM buffer holding message copied from buffer_region.
 
static bool msg_from_sdram_in_use
 Does msg_from_sdram currently contain a message being processed?
 
static int msg_from_sdram_length
 Length of msg_from_sdram.
 
static uint32_t next_buffer_time
 Simulation time associated with message in msg_from_sdram.
 
static uint8_t pkt_last_sequence_seen
 Most recently seen message sequence number.
 
static bool send_packet_reqs
 Whether request packets should be sent.
 
static buffered_operations last_buffer_operation
 What the last operation done on buffer_region was.
 
static uint8_t return_tag_id
 The SDP tag for sending messages to host.
 
static uint32_t return_tag_dest
 The SDP destination for sending messages to host.
 
static uint32_t buffered_in_sdp_port
 The SDP port that we buffer messages in on.
 
static uint32_t tx_offset
 The timer offset to use for transmissions.
 
static uint32_t last_space
 Last value of result of get_sdram_buffer_space_available() in send_buffer_request_pkt()
 
static uint32_t last_request_tick
 Last (sim) time we forced the buffers clear from timer_callback()
 
static bool stopped = false
 Whether this app has been asked to stop running.
 
static recorded_packet_trecorded_packet
 Buffer used for recording inbound packets.
 

Detailed Description

The implementation of the Reverse IP tag Multicast Source.

The purpose of this application is to inject SpiNNaker packets into the on-chip network dynamically.

Definition in file reverse_iptag_multicast_source.c.


Data Structure Documentation

◆ config

struct config

The configuration parameters for the application.

Definition at line 52 of file reverse_iptag_multicast_source.c.

Data Fields
uint32_t apply_prefix Whether to always apply a prefix.
uint32_t prefix The prefix to apply.
uint32_t prefix_type The type of prefix that is supplied.
uint32_t check_keys Whether only packets with keys in the masked key space should be sent.
uint32_t has_key Whether a key is provided.
uint32_t key_space The key space used for packet selection.
uint32_t mask The mask used for packet selection.
uint32_t buffer_region_size The size of the buffer region.
uint32_t space_before_data_request The point where we ask for the host to clear up space.
uint32_t return_tag_id The SDP tag for sending messages to host.
uint32_t return_tag_dest The SDP destination for sending messages to host.
uint32_t buffered_in_sdp_port The SDP port that we buffer messages in on.
uint32_t tx_offset The timer offset to use for transmissions.

Used to ensure we don't send all messages at the same time and overload SpiNNaker routers.

◆ ripmcs_provenance_t

struct ripmcs_provenance_t

The provenance data items.

Definition at line 94 of file reverse_iptag_multicast_source.c.

Data Fields
uint32_t received_packets How many EIEIO packets were received.
uint32_t sent_packets How many MC packets were sent.
uint32_t incorrect_keys Number of bad keys.
uint32_t incorrect_packets Number of bad packets (in non-debug mode)
uint32_t late_packets Number of packets dropped for being late.

◆ recorded_packet_t

struct recorded_packet_t

What information is recorded about a packet.

Definition at line 119 of file reverse_iptag_multicast_source.c.

Data Fields
uint32_t length The real length of recorded_packet_t::data.
uint32_t time The timestamp of this recording event.
uint8_t data[MAX_PACKET_SIZE] The content of the packet.

◆ req_packet_sdp_t

struct req_packet_sdp_t

An EIEIO request-for-more-space message.

Definition at line 126 of file reverse_iptag_multicast_source.c.

Data Fields
uint16_t eieio_header_command The command header.
uint16_t chip_id What chip is making the request.
uint8_t processor What core is making the request.
uint8_t region What region is full.
uint8_t sequence What sequence number we expect.
uint32_t space_available How much space is available.

Macro Definition Documentation

◆ NUMBER_OF_REGIONS_TO_RECORD

#define NUMBER_OF_REGIONS_TO_RECORD   1

The number of regions that can be recorded.

Definition at line 103 of file reverse_iptag_multicast_source.c.

◆ SPIKE_HISTORY_CHANNEL

#define SPIKE_HISTORY_CHANNEL   0

The recording channel used to track the history of what spikes were sent.

Definition at line 105 of file reverse_iptag_multicast_source.c.

◆ MIN_BUFFER_SPACE

#define MIN_BUFFER_SPACE   10

the minimum space required for a buffer to work

Definition at line 108 of file reverse_iptag_multicast_source.c.

◆ TICKS_BETWEEN_REQUESTS

#define TICKS_BETWEEN_REQUESTS   25

the amount of ticks to wait between requests

Definition at line 111 of file reverse_iptag_multicast_source.c.

◆ MAX_PACKET_SIZE

#define MAX_PACKET_SIZE   272

the maximum size of a packet excluding header

Definition at line 114 of file reverse_iptag_multicast_source.c.

◆ BITS

#define BITS (   value,
  shift,
  mask 
)     (((value) >> (shift)) & (mask))

Extract a field from a bitfield value.

Parameters
[in]valuethe bitfield value
[in]shiftthe index of the start of the LSB of the field
[in]maskthe mask for the value, once shifted to the bottom of the word
Returns
The actual field value

Definition at line 261 of file reverse_iptag_multicast_source.c.

Enumeration Type Documentation

◆ interrupt_priorities

human readable versions of the different priorities and usages.

Definition at line 45 of file reverse_iptag_multicast_source.c.

◆ region_ids

The memory regions.

Definition at line 85 of file reverse_iptag_multicast_source.c.

Function Documentation

◆ calculate_eieio_packet_command_size()

static uint16_t calculate_eieio_packet_command_size ( const eieio_msg_t  eieio_msg_ptr)
inlinestatic

What is the size of a command message?

Parameters
[in]eieio_msg_ptrPointer to the message
Returns
The size of the command message, in bytes

Definition at line 267 of file reverse_iptag_multicast_source.c.

◆ calculate_eieio_packet_event_size()

static uint16_t calculate_eieio_packet_event_size ( const eieio_msg_t  eieio_msg_ptr)
inlinestatic

What is the size of an event message?

Parameters
[in]eieio_msg_ptrPointer to the message
Returns
The size of the event message, in bytes

Definition at line 296 of file reverse_iptag_multicast_source.c.

◆ calculate_eieio_packet_size()

static uint16_t calculate_eieio_packet_size ( eieio_msg_t  eieio_msg_ptr)
inlinestatic

What is the size of a message?

Parameters
[in]eieio_msg_ptrPointer to the message
Returns
The size of the message, in bytes

Definition at line 338 of file reverse_iptag_multicast_source.c.

◆ print_packet_bytes()

static void print_packet_bytes ( eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Dumps a message to IOBUF if debug messages are enabled.

Parameters
[in]eieio_msg_ptrPointer to the message to print
[in]lengthLength of the message

Definition at line 352 of file reverse_iptag_multicast_source.c.

◆ print_packet()

static void print_packet ( const eieio_msg_t  eieio_msg_ptr)
inlinestatic

Dumps a message to IOBUF if debug messages are enabled.

Combines calculate_eieio_packet_size() and print_packet_bytes()

Parameters
[in]eieio_msg_ptrPointer to the message to print

Definition at line 376 of file reverse_iptag_multicast_source.c.

◆ signal_software_error()

static void signal_software_error ( const eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Flags up that bad input was received.

This triggers an RTE, but only in debug mode.

Parameters
[in]eieio_msg_ptrThe bad message
[in]lengthThe length of the message

Definition at line 390 of file reverse_iptag_multicast_source.c.

◆ get_sdram_buffer_space_available()

static uint32_t get_sdram_buffer_space_available ( void  )
inlinestatic

Computes how much space is available in the buffer.

Returns
The number of available bytes.

Definition at line 402 of file reverse_iptag_multicast_source.c.

◆ is_eieio_packet_in_buffer()

static bool is_eieio_packet_in_buffer ( void  )
inlinestatic

Whether we have a packet in the buffer.

Returns
True if the buffer is in use.

Definition at line 422 of file reverse_iptag_multicast_source.c.

◆ extract_time_from_eieio_msg()

static uint32_t extract_time_from_eieio_msg ( const eieio_msg_t  eieio_msg_ptr)
inlinestatic

Get the time from a message.

Parameters
[in]eieio_msg_ptrThe EIEIO message.
Returns
The timestamp from the message, or the current time if the message did not have a timestamp.

Definition at line 438 of file reverse_iptag_multicast_source.c.

◆ add_eieio_packet_to_sdram()

static bool add_eieio_packet_to_sdram ( const eieio_msg_t  eieio_msg_ptr,
uint32_t  length 
)
inlinestatic

Places a packet into the buffer.

Parameters
[in]eieio_msg_ptrThe EIEIO message to store.
[in]lengthThe size of the message.
Returns
True if the packet was added, false if it was dropped due to the buffer being full.

Definition at line 507 of file reverse_iptag_multicast_source.c.

◆ process_16_bit_packets()

static void process_16_bit_packets ( const uint16_t event_pointer,
bool  pkt_prefix_upper,
uint32_t  pkt_count,
uint32_t  pkt_key_prefix,
uint32_t  pkt_payload_prefix,
bool  pkt_has_payload,
bool  pkt_payload_is_timestamp 
)
inlinestatic

Handle an SDP message containing 16 bit events. The events are converted into SpiNNaker multicast packets and sent.

Parameters
[in]event_pointerWhere the events start
[in]pkt_prefix_upperTrue if the prefix is an upper prefix.
[in]pkt_countThe number of events.
[in]pkt_key_prefixThe prefix for keys.
[in]pkt_payload_prefixThe prefix for payloads.
[in]pkt_has_payloadWhether there is a payload.
[in]pkt_payload_is_timestampWhether the payload is a timestamp.

Definition at line 586 of file reverse_iptag_multicast_source.c.

◆ process_32_bit_packets()

static void process_32_bit_packets ( const uint16_t event_pointer,
uint32_t  pkt_count,
uint32_t  pkt_key_prefix,
uint32_t  pkt_payload_prefix,
bool  pkt_has_payload,
bool  pkt_payload_is_timestamp 
)
inlinestatic

Handle an SDP message containing 32 bit events. The events are converted into SpiNNaker multicast packets and sent.

Parameters
[in]event_pointerWhere the events start
[in]pkt_countThe number of events.
[in]pkt_key_prefixThe prefix for keys.
[in]pkt_payload_prefixThe prefix for payloads.
[in]pkt_has_payloadWhether there is a payload.
[in]pkt_payload_is_timestampWhether the payload is a timestamp.

Definition at line 650 of file reverse_iptag_multicast_source.c.

◆ record_packet()

static void record_packet ( const eieio_msg_t  eieio_msg_ptr,
uint32_t  length 
)
inlinestatic

Asynchronously record an EIEIO message.

Parameters
[in]eieio_msg_ptrThe message to record.
[in]lengthThe length of the message.

Definition at line 703 of file reverse_iptag_multicast_source.c.

◆ eieio_data_parse_packet()

static bool eieio_data_parse_packet ( const eieio_msg_t  eieio_msg_ptr,
uint32_t  length 
)
inlinestatic

Parses an EIEIO message.

This may cause the message to be saved for later, or may cause SpiNNaker multicast messages to be sent at once.

Parameters
[in]eieio_msg_ptrthe message to handle
[in]lengththe length of the message
Returns
True if the packet was successfully handled.

Definition at line 732 of file reverse_iptag_multicast_source.c.

◆ eieio_command_parse_stop_requests()

static void eieio_command_parse_stop_requests ( const eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Handle the command to stop parsing requests.

Parameters
[in]eieio_msg_ptrThe command message
[in]lengthThe length of the message

Definition at line 839 of file reverse_iptag_multicast_source.c.

◆ eieio_command_parse_start_requests()

static void eieio_command_parse_start_requests ( const eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Handle the command to start parsing requests.

Parameters
[in]eieio_msg_ptrThe command message
[in]lengthThe length of the message

Definition at line 849 of file reverse_iptag_multicast_source.c.

◆ eieio_command_parse_sequenced_data()

static void eieio_command_parse_sequenced_data ( const eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Handle the command to store a request for later processing.

Parameters
[in]eieio_msg_ptrThe command message
[in]lengthThe length of the message

Definition at line 858 of file reverse_iptag_multicast_source.c.

◆ eieio_commmand_parse_packet()

static bool eieio_commmand_parse_packet ( const eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Handle a command message.

Parameters
[in]eieio_msg_ptrThe command message
[in]lengthThe length of the message
Returns
True if the message was handled

Definition at line 900 of file reverse_iptag_multicast_source.c.

◆ packet_handler_selector()

static bool packet_handler_selector ( const eieio_msg_t  eieio_msg_ptr,
uint16_t  length 
)
inlinestatic

Handle an EIEIO message, which can either be a command or an event description message.

Parameters
[in]eieio_msg_ptrThe message
[in]lengthThe length of the message
Returns
True if the message was handled.

Definition at line 934 of file reverse_iptag_multicast_source.c.

◆ fetch_and_process_packet()

static void fetch_and_process_packet ( void  )
static

Process a stored packet.

Definition at line 951 of file reverse_iptag_multicast_source.c.

◆ send_buffer_request_pkt()

static void send_buffer_request_pkt ( void  )
static

Sends a message saying what our state is.

Definition at line 1038 of file reverse_iptag_multicast_source.c.

◆ read_parameters()

static bool read_parameters ( struct config config)
static

Reads our configuration region.

Parameters
[in]configThe address of the configuration region.
Returns
True (always) if the data validates.

Definition at line 1057 of file reverse_iptag_multicast_source.c.

◆ setup_buffer_region()

static bool setup_buffer_region ( uint8_t region_address)
static

Initialises the buffer region.

Parameters
[in]region_addressThe location of the region.
Returns
True if we succeed.

Definition at line 1129 of file reverse_iptag_multicast_source.c.

◆ initialise_recording()

static bool initialise_recording ( void  )
static

Initialises the recording parts of the model.

Returns
True if recording initialisation is successful, false otherwise

Definition at line 1144 of file reverse_iptag_multicast_source.c.

◆ provenance_callback()

static void provenance_callback ( address_t  address)
static

Writes our provenance data into the provenance region.

Parameters
[in]addressWhere to write

Definition at line 1159 of file reverse_iptag_multicast_source.c.

◆ initialise()

static bool initialise ( uint32_t timer_period)
static

Initialises the application.

Parameters
[out]timer_periodWhat to configure the timer with.
Returns
True if initialisation succeeded.

Definition at line 1172 of file reverse_iptag_multicast_source.c.

◆ resume_callback()

static void resume_callback ( void  )
static

Reinitialises the application after it was paused.

Definition at line 1216 of file reverse_iptag_multicast_source.c.

◆ timer_callback()

static void timer_callback ( uint  unused0,
uint  unused1 
)
static

The fundamental operation loop for the application.

Parameters
unused0unused
unused1unused

Definition at line 1238 of file reverse_iptag_multicast_source.c.

◆ sdp_packet_callback()

static void sdp_packet_callback ( uint  mailbox,
uint  port 
)
static

Handles an incoming SDP message.

Delegates to packet_handler_selector()

Parameters
[in]mailboxThe address of the message.
portThe SDP port of the message. Ignored.

Definition at line 1285 of file reverse_iptag_multicast_source.c.

◆ c_main()

void c_main ( void  )

Entry point.

Definition at line 1299 of file reverse_iptag_multicast_source.c.

Variable Documentation

◆ time

uint32_t time
static

Current simulation time.

Definition at line 142 of file reverse_iptag_multicast_source.c.

◆ simulation_ticks

uint32_t simulation_ticks
static

The time that the simulation is scheduled to stop at.

Definition at line 145 of file reverse_iptag_multicast_source.c.

◆ infinite_run

uint32_t infinite_run
static

True if the simulation will "run forever" (until user interrupt).

Definition at line 148 of file reverse_iptag_multicast_source.c.

◆ apply_prefix

bool apply_prefix
static

If a prefix should be applied.

Definition at line 151 of file reverse_iptag_multicast_source.c.

◆ check_key_in_space

bool check_key_in_space
static

Whether only packets with keys in the masked key space should be sent.

Definition at line 154 of file reverse_iptag_multicast_source.c.

◆ prefix

uint32_t prefix
static

The prefix to apply.

Definition at line 157 of file reverse_iptag_multicast_source.c.

◆ has_key

bool has_key
static

Whether a key is present; nothing is sent if no key is present.

Definition at line 160 of file reverse_iptag_multicast_source.c.

◆ key_space

uint32_t key_space
static

Pattern of keys that must be matched when check_key_in_space is true.

Definition at line 163 of file reverse_iptag_multicast_source.c.

◆ mask

uint32_t mask
static

Mask for keys to determine if the key matches the key_space.

Definition at line 166 of file reverse_iptag_multicast_source.c.

◆ last_stop_notification_request

uint32_t last_stop_notification_request
static

DEBUG: time of last stop notification.

Definition at line 169 of file reverse_iptag_multicast_source.c.

◆ prefix_type

eieio_prefix_types prefix_type
static

How to apply the prefix.

Definition at line 172 of file reverse_iptag_multicast_source.c.

◆ buffer_region_size

uint32_t buffer_region_size
static

Size of buffer in buffer_region.

Definition at line 175 of file reverse_iptag_multicast_source.c.

◆ space_before_data_request

uint32_t space_before_data_request
static

Threshold at which we ask for buffers to be cleared.

Definition at line 178 of file reverse_iptag_multicast_source.c.

◆ provenance

ripmcs_provenance_t provenance = {0}
static

The provenance information that we're collecting.

Definition at line 181 of file reverse_iptag_multicast_source.c.

◆ recording_flags

uint32_t recording_flags = 0
static

Keeps track of which types of recording should be done to this model.

Definition at line 184 of file reverse_iptag_multicast_source.c.

◆ buffer_region

uint8_t* buffer_region
static

Points to the buffer used to store data being collected to transfer out.

Definition at line 187 of file reverse_iptag_multicast_source.c.

◆ end_of_buffer_region

uint8_t* end_of_buffer_region
static

Points to the end of the buffer (to first byte that must not be written)

Definition at line 190 of file reverse_iptag_multicast_source.c.

◆ write_pointer

uint8_t* write_pointer
static

Points to next byte to write in buffer_region.

Definition at line 193 of file reverse_iptag_multicast_source.c.

◆ read_pointer

uint8_t* read_pointer
static

Points to next byte to read in buffer_region.

Definition at line 196 of file reverse_iptag_multicast_source.c.

◆ sdp_host_req

sdp_msg_t sdp_host_req
static

An SDP message ready to send to host.

Definition at line 199 of file reverse_iptag_multicast_source.c.

◆ req_ptr

req_packet_sdp_t* req_ptr
static

Payload part of sdp_host_req.

Definition at line 202 of file reverse_iptag_multicast_source.c.

◆ msg_from_sdram

eieio_msg_t msg_from_sdram
static

DTCM buffer holding message copied from buffer_region.

Definition at line 205 of file reverse_iptag_multicast_source.c.

◆ msg_from_sdram_in_use

bool msg_from_sdram_in_use
static

Does msg_from_sdram currently contain a message being processed?

Definition at line 208 of file reverse_iptag_multicast_source.c.

◆ msg_from_sdram_length

int msg_from_sdram_length
static

Length of msg_from_sdram.

Definition at line 211 of file reverse_iptag_multicast_source.c.

◆ next_buffer_time

uint32_t next_buffer_time
static

Simulation time associated with message in msg_from_sdram.

Definition at line 214 of file reverse_iptag_multicast_source.c.

◆ pkt_last_sequence_seen

uint8_t pkt_last_sequence_seen
static

Most recently seen message sequence number.

Definition at line 217 of file reverse_iptag_multicast_source.c.

◆ send_packet_reqs

bool send_packet_reqs
static

Whether request packets should be sent.

Definition at line 220 of file reverse_iptag_multicast_source.c.

◆ last_buffer_operation

buffered_operations last_buffer_operation
static

What the last operation done on buffer_region was.

Definition at line 223 of file reverse_iptag_multicast_source.c.

◆ return_tag_id

uint8_t return_tag_id
static

The SDP tag for sending messages to host.

Definition at line 226 of file reverse_iptag_multicast_source.c.

◆ return_tag_dest

uint32_t return_tag_dest
static

The SDP destination for sending messages to host.

Definition at line 229 of file reverse_iptag_multicast_source.c.

◆ buffered_in_sdp_port

uint32_t buffered_in_sdp_port
static

The SDP port that we buffer messages in on.

Definition at line 232 of file reverse_iptag_multicast_source.c.

◆ tx_offset

uint32_t tx_offset
static

The timer offset to use for transmissions.

Used to ensure we don't send all messages at the same time and overload SpiNNaker routers.

Definition at line 238 of file reverse_iptag_multicast_source.c.

◆ last_space

uint32_t last_space
static

◆ last_request_tick

uint32_t last_request_tick
static

Last (sim) time we forced the buffers clear from timer_callback()

Definition at line 245 of file reverse_iptag_multicast_source.c.

◆ stopped

bool stopped = false
static

Whether this app has been asked to stop running.

Definition at line 248 of file reverse_iptag_multicast_source.c.

◆ recorded_packet

recorded_packet_t* recorded_packet
static

Buffer used for recording inbound packets.

Definition at line 251 of file reverse_iptag_multicast_source.c.