Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Xin Wang
codes-dev
Commits
57ddfd1b
Commit
57ddfd1b
authored
Apr 03, 2015
by
Jonathan Jenkins
Browse files
generalize modelnet lp registration routine
parent
397300a5
Changes
7
Hide whitespace changes
Inline
Side-by-side
codes/model-net-method.h
View file @
57ddfd1b
...
@@ -21,6 +21,11 @@ struct model_net_method
...
@@ -21,6 +21,11 @@ struct model_net_method
{
{
uint64_t
packet_size
;
/* packet size */
uint64_t
packet_size
;
/* packet size */
void
(
*
mn_configure
)();
/* For initializing the network */
void
(
*
mn_configure
)();
/* For initializing the network */
/* Register lp types with ROSS. This may be left as NULL, in which case the
* type corresponding to name "modelnet_<type>" will be registered
* automatically. Most networks don't need this (currently, only dragonfly
* uses it) */
void
(
*
mn_register
)(
tw_lptype
*
base_type
);
tw_stime
(
*
model_net_method_packet_event
)(
tw_stime
(
*
model_net_method_packet_event
)(
char
*
category
,
char
*
category
,
tw_lpid
final_dest_lp
,
tw_lpid
final_dest_lp
,
...
...
src/models/networks/model-net/dragonfly.c
View file @
57ddfd1b
...
@@ -1826,10 +1826,16 @@ static tw_lpid dragonfly_find_local_device(
...
@@ -1826,10 +1826,16 @@ static tw_lpid dragonfly_find_local_device(
return
(
dest_id
);
return
(
dest_id
);
}
}
static
void
dragonfly_register
(
tw_lptype
*
base_type
)
{
lp_type_register
(
LP_CONFIG_NM
,
base_type
);
lp_type_register
(
"dragonfly_router"
,
&
dragonfly_lps
[
1
]);
}
/* data structure for dragonfly statistics */
/* data structure for dragonfly statistics */
struct
model_net_method
dragonfly_method
=
struct
model_net_method
dragonfly_method
=
{
{
.
mn_configure
=
dragonfly_configure
,
.
mn_configure
=
dragonfly_configure
,
.
mn_register
=
dragonfly_register
,
.
model_net_method_packet_event
=
dragonfly_packet_event
,
.
model_net_method_packet_event
=
dragonfly_packet_event
,
.
model_net_method_packet_event_rc
=
dragonfly_packet_event_rc
,
.
model_net_method_packet_event_rc
=
dragonfly_packet_event_rc
,
.
model_net_method_recv_msg_event
=
NULL
,
.
model_net_method_recv_msg_event
=
NULL
,
...
...
src/models/networks/model-net/loggp.c
View file @
57ddfd1b
...
@@ -155,6 +155,7 @@ static const struct param_table_entry* find_params(
...
@@ -155,6 +155,7 @@ static const struct param_table_entry* find_params(
struct
model_net_method
loggp_method
=
struct
model_net_method
loggp_method
=
{
{
.
mn_configure
=
loggp_configure
,
.
mn_configure
=
loggp_configure
,
.
mn_register
=
NULL
,
.
model_net_method_packet_event
=
loggp_packet_event
,
.
model_net_method_packet_event
=
loggp_packet_event
,
.
model_net_method_packet_event_rc
=
loggp_packet_event_rc
,
.
model_net_method_packet_event_rc
=
loggp_packet_event_rc
,
.
model_net_method_recv_msg_event
=
loggp_recv_msg_event
,
.
model_net_method_recv_msg_event
=
loggp_recv_msg_event
,
...
...
src/models/networks/model-net/model-net-lp.c
View file @
57ddfd1b
...
@@ -113,18 +113,13 @@ void model_net_base_register(int *do_config_nets){
...
@@ -113,18 +113,13 @@ void model_net_base_register(int *do_config_nets){
// here, we initialize ALL lp types to use the base type
// here, we initialize ALL lp types to use the base type
for
(
int
i
=
0
;
i
<
MAX_NETS
;
i
++
){
for
(
int
i
=
0
;
i
<
MAX_NETS
;
i
++
){
if
(
do_config_nets
[
i
]){
if
(
do_config_nets
[
i
]){
lp_type_register
(
model_net_lp_config_names
[
i
],
&
model_net_base_lp
);
// some model-net lps need custom registration hooks (dragonfly).
// HACK: unfortunately, we need to special-case dragonfly
// Those that don't NULL out the reg. function
// registration at the moment - there are two LPs, and
if
(
method_array
[
i
]
->
mn_register
==
NULL
)
// previously the LP matched on configuration initialized
lp_type_register
(
model_net_lp_config_names
[
i
],
// the "router" LP. Now that the base LP is in charge of
&
model_net_base_lp
);
// registration, we need to take care of it
else
// TODO: fix the interface to have underlying networks do
method_array
[
i
]
->
mn_register
(
&
model_net_base_lp
);
// the registration
if
(
i
==
DRAGONFLY
){
lp_type_register
(
"dragonfly_router"
,
&
method_array
[
DRAGONFLY
]
->
mn_get_lp_type
()[
1
]);
}
}
}
}
}
}
}
...
...
src/models/networks/model-net/simplenet-upd.c
View file @
57ddfd1b
...
@@ -74,6 +74,10 @@ static void simple_net_collective();
...
@@ -74,6 +74,10 @@ static void simple_net_collective();
/* collective network calls-- rc */
/* collective network calls-- rc */
static
void
simple_net_collective_rc
();
static
void
simple_net_collective_rc
();
/* Modelnet interface events */
/* sets up the simplenet parameters through modelnet interface */
static
void
sn_configure
();
/* allocate a new event that will pass through simplenet to arriave at its
/* allocate a new event that will pass through simplenet to arriave at its
* destination:
* destination:
*
*
...
@@ -86,10 +90,6 @@ static void simple_net_collective_rc();
...
@@ -86,10 +90,6 @@ static void simple_net_collective_rc();
* - net_msg_size_bytes: size of simulated network message in bytes.
* - net_msg_size_bytes: size of simulated network message in bytes.
* - sender: LP calling this function.
* - sender: LP calling this function.
*/
*/
/* Modelnet interface events */
/* sets up the simplenet parameters through modelnet interface */
static
void
sn_configure
();
/* Issues a simplenet packet event call */
/* Issues a simplenet packet event call */
static
tw_stime
simplenet_packet_event
(
static
tw_stime
simplenet_packet_event
(
char
*
category
,
char
*
category
,
...
@@ -121,6 +121,7 @@ static tw_lpid sn_find_local_device(
...
@@ -121,6 +121,7 @@ static tw_lpid sn_find_local_device(
struct
model_net_method
simplenet_method
=
struct
model_net_method
simplenet_method
=
{
{
.
mn_configure
=
sn_configure
,
.
mn_configure
=
sn_configure
,
.
mn_register
=
NULL
,
.
model_net_method_packet_event
=
simplenet_packet_event
,
.
model_net_method_packet_event
=
simplenet_packet_event
,
.
model_net_method_packet_event_rc
=
simplenet_packet_event_rc
,
.
model_net_method_packet_event_rc
=
simplenet_packet_event_rc
,
.
model_net_method_recv_msg_event
=
NULL
,
.
model_net_method_recv_msg_event
=
NULL
,
...
...
src/models/networks/model-net/simplep2p.c
View file @
57ddfd1b
...
@@ -152,6 +152,7 @@ static tw_lpid sp_find_local_device(
...
@@ -152,6 +152,7 @@ static tw_lpid sp_find_local_device(
struct
model_net_method
simplep2p_method
=
struct
model_net_method
simplep2p_method
=
{
{
.
mn_configure
=
sp_configure
,
.
mn_configure
=
sp_configure
,
.
mn_register
=
NULL
,
.
model_net_method_packet_event
=
simplep2p_packet_event
,
.
model_net_method_packet_event
=
simplep2p_packet_event
,
.
model_net_method_packet_event_rc
=
simplep2p_packet_event_rc
,
.
model_net_method_packet_event_rc
=
simplep2p_packet_event_rc
,
.
model_net_method_recv_msg_event
=
NULL
,
.
model_net_method_recv_msg_event
=
NULL
,
...
...
src/models/networks/model-net/torus.c
View file @
57ddfd1b
...
@@ -1341,6 +1341,7 @@ static tw_lpid torus_find_local_device(
...
@@ -1341,6 +1341,7 @@ static tw_lpid torus_find_local_device(
struct
model_net_method
torus_method
=
struct
model_net_method
torus_method
=
{
{
.
mn_configure
=
torus_configure
,
.
mn_configure
=
torus_configure
,
.
mn_register
=
NULL
,
.
model_net_method_packet_event
=
torus_packet_event
,
.
model_net_method_packet_event
=
torus_packet_event
,
.
model_net_method_packet_event_rc
=
torus_packet_event_rc
,
.
model_net_method_packet_event_rc
=
torus_packet_event_rc
,
.
model_net_method_recv_msg_event
=
NULL
,
.
model_net_method_recv_msg_event
=
NULL
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment