Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
a2c31490
Commit
a2c31490
authored
Feb 07, 2016
by
Aikaterini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update ethernet library wrt changes in openair0_device - add packet sequence number
parent
0a953cbc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
107 additions
and
59 deletions
+107
-59
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
+4
-3
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
+37
-21
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
+59
-13
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h
+7
-22
No files found.
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c
View file @
a2c31490
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
#include "common_lib.h"
#include "common_lib.h"
#include "ethernet_lib.h"
#include "ethernet_lib.h"
#define DEBUG
1
#define DEBUG
0
struct
sockaddr_ll
dest_addr
[
MAX_INST
];
struct
sockaddr_ll
dest_addr
[
MAX_INST
];
struct
sockaddr_ll
local_addr
[
MAX_INST
];
struct
sockaddr_ll
local_addr
[
MAX_INST
];
...
@@ -275,7 +275,7 @@ int eth_set_dev_conf_raw(openair0_device *device) {
...
@@ -275,7 +275,7 @@ int eth_set_dev_conf_raw(openair0_device *device) {
memcpy
(
msg
,(
void
*
)
&
eh
,
MAC_HEADER_SIZE_BYTES
);
memcpy
(
msg
,(
void
*
)
&
eh
,
MAC_HEADER_SIZE_BYTES
);
memcpy
((
msg
+
MAC_HEADER_SIZE_BYTES
),(
void
*
)
&
device
->
openair0_cfg
,
sizeof
(
openair0_config_t
));
memcpy
((
msg
+
MAC_HEADER_SIZE_BYTES
),(
void
*
)
device
->
openair0_cfg
,
sizeof
(
openair0_config_t
));
if
(
send
(
eth
->
sockfd
[
Mod_id
],
if
(
send
(
eth
->
sockfd
[
Mod_id
],
msg
,
msg
,
...
@@ -311,7 +311,8 @@ int eth_get_dev_conf_raw(openair0_device *device) {
...
@@ -311,7 +311,8 @@ int eth_get_dev_conf_raw(openair0_device *device) {
/* RRH stores the remote MAC address */
/* RRH stores the remote MAC address */
memcpy
(
eh
.
ether_dhost
,(
msg
+
ETH_ALEN
),
ETH_ALEN
);
memcpy
(
eh
.
ether_dhost
,(
msg
+
ETH_ALEN
),
ETH_ALEN
);
memcpy
((
void
*
)
&
device
->
openair0_cfg
,(
msg
+
MAC_HEADER_SIZE_BYTES
),
sizeof
(
openair0_config_t
));
//memcpy((void*)&device->openair0_cfg,(msg + MAC_HEADER_SIZE_BYTES), sizeof(openair0_config_t));
device
->
openair0_cfg
=
(
openair0_config_t
*
)(
msg
+
MAC_HEADER_SIZE_BYTES
);
printf
(
"[%s] binding mod_%d to hardware address %x:%x:%x:%x:%x:%x hardware address %x:%x:%x:%x:%x:%x
\n
"
,((
device
->
host_type
==
BBU_HOST
)
?
"BBU"
:
"RRH"
),
Mod_id
,
eh
.
ether_shost
[
0
],
eh
.
ether_shost
[
1
],
eh
.
ether_shost
[
2
],
eh
.
ether_shost
[
3
],
eh
.
ether_shost
[
4
],
eh
.
ether_shost
[
5
],
eh
.
ether_dhost
[
0
],
eh
.
ether_dhost
[
1
],
eh
.
ether_dhost
[
2
],
eh
.
ether_dhost
[
3
],
eh
.
ether_dhost
[
4
],
eh
.
ether_dhost
[
5
]);
printf
(
"[%s] binding mod_%d to hardware address %x:%x:%x:%x:%x:%x hardware address %x:%x:%x:%x:%x:%x
\n
"
,((
device
->
host_type
==
BBU_HOST
)
?
"BBU"
:
"RRH"
),
Mod_id
,
eh
.
ether_shost
[
0
],
eh
.
ether_shost
[
1
],
eh
.
ether_shost
[
2
],
eh
.
ether_shost
[
3
],
eh
.
ether_shost
[
4
],
eh
.
ether_shost
[
5
],
eh
.
ether_dhost
[
0
],
eh
.
ether_dhost
[
1
],
eh
.
ether_dhost
[
2
],
eh
.
ether_dhost
[
3
],
eh
.
ether_dhost
[
4
],
eh
.
ether_dhost
[
5
]);
return
0
;
return
0
;
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
View file @
a2c31490
...
@@ -48,6 +48,7 @@
...
@@ -48,6 +48,7 @@
#include <netinet/ether.h>
#include <netinet/ether.h>
#include <unistd.h>
#include <unistd.h>
#include <errno.h>
#include <errno.h>
#include "vcd_signal_dumper.h"
#include "common_lib.h"
#include "common_lib.h"
#include "ethernet_lib.h"
#include "ethernet_lib.h"
...
@@ -58,6 +59,10 @@ struct sockaddr_in local_addr[MAX_INST];
...
@@ -58,6 +59,10 @@ struct sockaddr_in local_addr[MAX_INST];
int
addr_len
[
MAX_INST
];
int
addr_len
[
MAX_INST
];
uint16_t
pck_seq_num
=
1
;
uint16_t
pck_seq_num_cur
=
0
;
uint16_t
pck_seq_num_prev
=
0
;
int
eth_socket_init_udp
(
openair0_device
*
device
)
{
int
eth_socket_init_udp
(
openair0_device
*
device
)
{
int
i
=
0
;
int
i
=
0
;
...
@@ -122,9 +127,6 @@ int addr_len[MAX_INST];
...
@@ -122,9 +127,6 @@ int addr_len[MAX_INST];
exit
(
0
);
exit
(
0
);
}
}
/* apply additional configuration */
//ethernet_tune (device,MTU_SIZE,UDP_PACKET_SIZE_BYTES(device->openair0_cfg->samples_per_packet));
/* want to receive -> so bind */
/* want to receive -> so bind */
if
(
bind
(
eth
->
sockfd
[
Mod_id
],(
struct
sockaddr
*
)
&
local_addr
[
Mod_id
],
addr_len
[
Mod_id
])
<
0
)
{
if
(
bind
(
eth
->
sockfd
[
Mod_id
],(
struct
sockaddr
*
)
&
local_addr
[
Mod_id
],
addr_len
[
Mod_id
])
<
0
)
{
perror
(
"ETHERNET: Cannot bind to socket"
);
perror
(
"ETHERNET: Cannot bind to socket"
);
...
@@ -133,8 +135,6 @@ int addr_len[MAX_INST];
...
@@ -133,8 +135,6 @@ int addr_len[MAX_INST];
printf
(
"[%s] binding mod_%d to %s:%d
\n
"
,
"RRH"
,
Mod_id
,
str_local
,
ntohs
(
local_addr
[
Mod_id
].
sin_port
));
printf
(
"[%s] binding mod_%d to %s:%d
\n
"
,
"RRH"
,
Mod_id
,
str_local
,
ntohs
(
local_addr
[
Mod_id
].
sin_port
));
}
}
printf
(
"ssssssssssssssss
\n
"
);
return
0
;
return
0
;
}
}
...
@@ -159,10 +159,15 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
...
@@ -159,10 +159,15 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
bytes_sent
=
0
;
bytes_sent
=
0
;
*
(
int16_t
*
)(
buff2
+
sizeof
(
int16_t
))
=
1
+
(
i
<<
1
);
/* constract application header */
// eth->pck_header.seq_num = pck_seq_num;
//eth->pck_header.antenna_id = 1+(i<<1);
//eth->pck_header.timestamp = timestamp;
*
(
uint16_t
*
)
buff2
=
pck_seq_num
;
*
(
uint16_t
*
)(
buff2
+
sizeof
(
uint16_t
))
=
1
+
(
i
<<
1
);
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
))
=
timestamp
;
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
))
=
timestamp
;
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_TX_SEQ_NUM
,
pck_seq_num
);
while
(
bytes_sent
<
UDP_PACKET_SIZE_BYTES
(
nsamps
))
{
while
(
bytes_sent
<
UDP_PACKET_SIZE_BYTES
(
nsamps
))
{
#if DEBUG
#if DEBUG
printf
(
"------- TX ------: buff2 current position=%d remaining_bytes=%d bytes_sent=%d
\n
"
,
printf
(
"------- TX ------: buff2 current position=%d remaining_bytes=%d bytes_sent=%d
\n
"
,
...
@@ -193,6 +198,8 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
...
@@ -193,6 +198,8 @@ int trx_eth_write_udp(openair0_device *device, openair0_timestamp timestamp, voi
#endif
#endif
eth
->
tx_actual_nsamps
=
bytes_sent
>>
2
;
eth
->
tx_actual_nsamps
=
bytes_sent
>>
2
;
eth
->
tx_count
++
;
eth
->
tx_count
++
;
pck_seq_num
++
;
if
(
pck_seq_num
>
MAX_PACKET_SEQ_NUM
(
nsamps
,
76800
)
)
pck_seq_num
=
1
;
}
}
}
}
/* tx buffer values restored */
/* tx buffer values restored */
...
@@ -278,19 +285,28 @@ int trx_eth_read_udp(openair0_device *device, openair0_timestamp *timestamp, voi
...
@@ -278,19 +285,28 @@ int trx_eth_read_udp(openair0_device *device, openair0_timestamp *timestamp, voi
bytes_received
);
bytes_received
);
dump_packet
((
device
->
host_type
==
BBU_HOST
)
?
"BBU"
:
"RRH"
,
buff2
,
UDP_PACKET_SIZE_BYTES
(
nsamps
),
RX_FLAG
);
dump_packet
((
device
->
host_type
==
BBU_HOST
)
?
"BBU"
:
"RRH"
,
buff2
,
UDP_PACKET_SIZE_BYTES
(
nsamps
),
RX_FLAG
);
#endif
#endif
/* store the timestamp value from packet's header */
/* store the timestamp value from packet's header */
if
(
prev_timestamp
==
-
1
)
{
*
timestamp
=
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
));
prev_timestamp
=
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
));
/* store the sequence number of the previous packet received */
if
(
pck_seq_num_cur
==
0
)
{
pck_seq_num_prev
=
*
(
uint16_t
*
)
buff2
;
}
else
{
}
else
{
p
rev_timestamp
=
timestamp
;
p
ck_seq_num_prev
=
pck_seq_num_cur
;
}
}
/* store the timestamp value from packet's header */
/* get the packet sequence number from packet's header */
*
timestamp
=
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
));
pck_seq_num_cur
=
*
(
uint16_t
*
)
buff2
;
eth
->
rx_actual_nsamps
=
bytes_received
>>
2
;
//printf("cur=%d prev=%d buff=%d\n",pck_seq_num_cur,pck_seq_num_prev,*(uint16_t *)(buff2));
eth
->
rx_count
++
;
if
(
(
pck_seq_num_cur
!=
(
pck_seq_num_prev
+
1
)
)
&&
!
((
pck_seq_num_prev
==
75
)
&&
(
pck_seq_num_cur
==
1
))){
}
printf
(
"out of order packet received1! %d|%d|%d
\n
"
,
pck_seq_num_cur
,
pck_seq_num_prev
,
*
timestamp
);
}
}
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_RX_SEQ_NUM
,
pck_seq_num_cur
);
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME
(
VCD_SIGNAL_DUMPER_VARIABLES_RX_SEQ_NUM_PRV
,
pck_seq_num_prev
);
eth
->
rx_actual_nsamps
=
bytes_received
>>
2
;
eth
->
rx_count
++
;
}
}
/* tx buffer values restored */
/* tx buffer values restored */
*
(
int32_t
*
)
buff2
=
temp0
;
*
(
int32_t
*
)
buff2
=
temp0
;
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
))
=
temp1
;
*
(
openair0_timestamp
*
)(
buff2
+
sizeof
(
int32_t
))
=
temp1
;
...
@@ -316,7 +332,7 @@ int eth_set_dev_conf_udp(openair0_device *device) {
...
@@ -316,7 +332,7 @@ int eth_set_dev_conf_udp(openair0_device *device) {
msg
=
malloc
(
sizeof
(
openair0_config_t
));
msg
=
malloc
(
sizeof
(
openair0_config_t
));
msg_len
=
sizeof
(
openair0_config_t
);
msg_len
=
sizeof
(
openair0_config_t
);
memcpy
(
msg
,(
void
*
)
&
device
->
openair0_cfg
,
msg_len
);
memcpy
(
msg
,(
void
*
)
device
->
openair0_cfg
,
msg_len
);
if
(
sendto
(
eth
->
sockfd
[
Mod_id
],
msg
,
msg_len
,
0
,(
struct
sockaddr
*
)
&
dest_addr
[
Mod_id
],
addr_len
[
Mod_id
])
==-
1
)
{
if
(
sendto
(
eth
->
sockfd
[
Mod_id
],
msg
,
msg_len
,
0
,(
struct
sockaddr
*
)
&
dest_addr
[
Mod_id
],
addr_len
[
Mod_id
])
==-
1
)
{
perror
(
"ETHERNET: "
);
perror
(
"ETHERNET: "
);
...
@@ -338,7 +354,7 @@ int eth_get_dev_conf_udp(openair0_device *device) {
...
@@ -338,7 +354,7 @@ int eth_get_dev_conf_udp(openair0_device *device) {
msg_len
=
sizeof
(
openair0_config_t
);
msg_len
=
sizeof
(
openair0_config_t
);
inet_ntop
(
AF_INET
,
&
(
local_addr
[
Mod_id
].
sin_addr
),
str
,
INET_ADDRSTRLEN
);
inet_ntop
(
AF_INET
,
&
(
local_addr
[
Mod_id
].
sin_addr
),
str
,
INET_ADDRSTRLEN
);
inet_ntop
(
AF_INET
,
&
(
dest_addr
[
Mod_id
].
sin_addr
),
str1
,
INET_ADDRSTRLEN
);
inet_ntop
(
AF_INET
,
&
(
dest_addr
[
Mod_id
].
sin_addr
),
str1
,
INET_ADDRSTRLEN
);
/* RRH receives from BBU openair0_config_t */
/* RRH receives from BBU openair0_config_t */
if
(
recvfrom
(
eth
->
sockfd
[
Mod_id
],
if
(
recvfrom
(
eth
->
sockfd
[
Mod_id
],
...
@@ -350,7 +366,7 @@ int eth_get_dev_conf_udp(openair0_device *device) {
...
@@ -350,7 +366,7 @@ int eth_get_dev_conf_udp(openair0_device *device) {
perror
(
"ETHERNET: "
);
perror
(
"ETHERNET: "
);
exit
(
0
);
exit
(
0
);
}
}
memcpy
((
void
*
)
&
device
->
openair0_cfg
,
msg
,
msg_len
)
;
device
->
openair0_cfg
=
(
openair0_config_t
*
)
msg
;
/* get remote ip address and port */
/* get remote ip address and port */
/* inet_ntop(AF_INET, &(dest_addr[Mod_id].sin_addr), str1, INET_ADDRSTRLEN); */
/* inet_ntop(AF_INET, &(dest_addr[Mod_id].sin_addr), str1, INET_ADDRSTRLEN); */
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
View file @
a2c31490
...
@@ -82,9 +82,12 @@ int trx_eth_start(openair0_device *device) {
...
@@ -82,9 +82,12 @@ int trx_eth_start(openair0_device *device) {
if
(
eth_get_dev_conf_udp
(
device
)
!=
0
)
return
-
1
;
if
(
eth_get_dev_conf_udp
(
device
)
!=
0
)
return
-
1
;
}
}
/* adjust MTU wrt number of samples per packet */
/* adjust MTU wrt number of samples per packet */
if
(
ethernet_tune
(
device
,
MTU_SIZE
,
UDP_PACKET_SIZE_BYTES
(
device
->
openair0_cfg
->
samples_per_packet
))
!=
0
)
return
-
1
;
//
if(ethernet_tune (device,MTU_SIZE,UDP_PACKET_SIZE_BYTES(device->openair0_cfg->samples_per_packet))!=0) return -1;
}
}
/* apply additional configuration */
if
(
ethernet_tune
(
device
,
SND_BUF_SIZE
,
2000000000
)
!=
0
)
return
-
1
;
if
(
ethernet_tune
(
device
,
RCV_BUF_SIZE
,
2000000000
)
!=
0
)
return
-
1
;
return
0
;
return
0
;
}
}
...
@@ -335,13 +338,17 @@ int ethernet_tune(openair0_device *device, unsigned int option, int value) {
...
@@ -335,13 +338,17 @@ int ethernet_tune(openair0_device *device, unsigned int option, int value) {
int
transport_init
(
openair0_device
*
device
,
openair0_config_t
*
openair0_cfg
,
char
*
cfgfile
)
{
int
transport_init
(
openair0_device
*
device
,
openair0_config_t
*
openair0_cfg
,
eth_params_t
*
eth_params
)
{
eth_state_t
*
eth
=
(
eth_state_t
*
)
malloc
(
sizeof
(
eth_state_t
));
eth_state_t
*
eth
=
(
eth_state_t
*
)
malloc
(
sizeof
(
eth_state_t
));
memset
(
eth
,
0
,
sizeof
(
eth_state_t
));
memset
(
eth
,
0
,
sizeof
(
eth_state_t
));
eth
->
flags
=
ETH_RAW_MODE
;
if
(
eth_params
->
transp_preference
==
1
)
{
eth
->
flags
=
ETH_RAW_MODE
;
}
else
{
eth
->
flags
=
ETH_UDP_MODE
;
}
printf
(
"[ETHERNET]: Initializing openair0_device for %s ...
\n
"
,
((
device
->
host_type
==
BBU_HOST
)
?
"BBU"
:
"RRH"
));
printf
(
"[ETHERNET]: Initializing openair0_device for %s ...
\n
"
,
((
device
->
host_type
==
BBU_HOST
)
?
"BBU"
:
"RRH"
));
device
->
Mod_id
=
num_devices_eth
++
;
device
->
Mod_id
=
num_devices_eth
++
;
device
->
transp_type
=
ETHERNET_TP
;
device
->
transp_type
=
ETHERNET_TP
;
...
@@ -362,13 +369,53 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, cha
...
@@ -362,13 +369,53 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, cha
device
->
trx_write_func
=
trx_eth_write_udp
;
device
->
trx_write_func
=
trx_eth_write_udp
;
device
->
trx_read_func
=
trx_eth_read_udp
;
device
->
trx_read_func
=
trx_eth_read_udp
;
}
}
/*hardcoded!!!!*/
eth
->
if_name
[
device
->
Mod_id
]
=
"eth0"
;
eth
->
if_name
[
device
->
Mod_id
]
=
eth_params
->
local_if_name
;
device
->
priv
=
eth
;
device
->
priv
=
eth
;
openair0_cfg
->
iq_txshift
=
5
;
openair0_cfg
->
iq_rxrescale
=
15
;
/* device specific */
memcpy
((
void
*
)
device
->
openair0_cfg
,(
void
*
)
openair0_cfg
,
sizeof
(
openair0_config_t
));
openair0_cfg
[
0
].
iq_txshift
=
5
;
openair0_cfg
[
0
].
iq_rxrescale
=
15
;
openair0_cfg
[
0
].
txlaunch_wait
=
0
;
openair0_cfg
[
0
].
txlaunch_wait_slotcount
=
0
;
/* RRH does not have any information to make this configuration atm */
if
(
device
->
host_type
==
BBU_HOST
)
{
/*Note scheduling advance values valid only for case 7680000 */
switch
((
int
)
openair0_cfg
[
0
].
sample_rate
)
{
case
30720000
:
openair0_cfg
[
0
].
samples_per_packet
=
4096
;
openair0_cfg
[
0
].
tx_sample_advance
=
0
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
22
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
case
23040000
:
openair0_cfg
[
0
].
samples_per_packet
=
2048
;
openair0_cfg
[
0
].
tx_sample_advance
=
0
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
16
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
case
15360000
:
openair0_cfg
[
0
].
samples_per_packet
=
2048
;
openair0_cfg
[
0
].
tx_sample_advance
=
0
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
10
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
case
7680000
:
openair0_cfg
[
0
].
samples_per_packet
=
1024
;
openair0_cfg
[
0
].
tx_sample_advance
=
0
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
10
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
case
1920000
:
openair0_cfg
[
0
].
samples_per_packet
=
256
;
openair0_cfg
[
0
].
tx_sample_advance
=
0
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
16
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
default:
printf
(
"Error: unknown sampling rate %f
\n
"
,
openair0_cfg
[
0
].
sample_rate
);
exit
(
-
1
);
break
;
}
}
device
->
openair0_cfg
=&
openair0_cfg
[
0
];
return
0
;
return
0
;
}
}
...
@@ -414,8 +461,7 @@ void dump_dev(openair0_device *device) {
...
@@ -414,8 +461,7 @@ void dump_dev(openair0_device *device) {
device
->
openair0_cfg
->
tx_num_channels
,
device
->
openair0_cfg
->
rx_num_channels
);
device
->
openair0_cfg
->
tx_num_channels
,
device
->
openair0_cfg
->
rx_num_channels
);
printf
(
" Running flags: %s %s %s
\n
"
,
printf
(
" Running flags: %s %s %s
\n
"
,
((
eth
->
flags
&
ETH_RAW_MODE
)
?
"RAW socket mode - "
:
""
),
((
eth
->
flags
&
ETH_RAW_MODE
)
?
"RAW socket mode - "
:
""
),
((
eth
->
flags
&
ETH_UDP_MODE
)
?
"UDP socket mode - "
:
""
),
((
eth
->
flags
&
ETH_UDP_MODE
)
?
"UDP socket mode - "
:
""
));
((
eth
->
flags
&
ETH_LOOP_MODE
)
?
"loopback mode - "
:
""
));
printf
(
" Number of iqs dumped when displaying packets: %i
\n\n
"
,
eth
->
iqdumpcnt
);
printf
(
" Number of iqs dumped when displaying packets: %i
\n\n
"
,
eth
->
iqdumpcnt
);
}
}
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h
View file @
a2c31490
...
@@ -53,33 +53,18 @@
...
@@ -53,33 +53,18 @@
#define DEFAULT_IF "lo"
#define DEFAULT_IF "lo"
#define ETH_RAW_MODE 1
#define ETH_RAW_MODE 1
#define ETH_UDP_MODE (1<<1)
#define ETH_UDP_MODE 0
#define ETH_LOOP_MODE (1<<2)
#define TX_FLAG 1
#define TX_FLAG 1
#define RX_FLAG 0
#define RX_FLAG 0
#define MAX_PACKET_SEQ_NUM(spp,spf) (spf/spp)
#define MAC_HEADER_SIZE_BYTES (sizeof(struct ether_header))
#define MAC_HEADER_SIZE_BYTES (sizeof(struct ether_header))
#define APP_HEADER_SIZE_BYTES (sizeof(int32_t) + sizeof(openair0_timestamp))
#define APP_HEADER_SIZE_BYTES (sizeof(int32_t) + sizeof(openair0_timestamp))
#define PAYLOAD_SIZE_BYTES(nsamps) (nsamps<<2)
#define PAYLOAD_SIZE_BYTES(nsamps) (nsamps<<2)
#define UDP_PACKET_SIZE_BYTES(nsamps) (APP_HEADER_SIZE_BYTES + PAYLOAD_SIZE_BYTES(nsamps))
#define UDP_PACKET_SIZE_BYTES(nsamps) (APP_HEADER_SIZE_BYTES + PAYLOAD_SIZE_BYTES(nsamps))
#define RAW_PACKET_SIZE_BYTES(nsamps) (APP_HEADER_SIZE_BYTES + MAC_HEADER_SIZE_BYTES + PAYLOAD_SIZE_BYTES(nsamps))
#define RAW_PACKET_SIZE_BYTES(nsamps) (APP_HEADER_SIZE_BYTES + MAC_HEADER_SIZE_BYTES + PAYLOAD_SIZE_BYTES(nsamps))
/*
#define RRH_DEST_MAC0 0x74
#define RRH_DEST_MAC1 0xd4
#define RRH_DEST_MAC2 0x35
#define RRH_DEST_MAC3 0xcc
#define RRH_DEST_MAC4 0x88
#define RRH_DEST_MAC5 0x45
#define BBU_DEST_MAC0 0xd4
#define BBU_DEST_MAC1 0xbe
#define BBU_DEST_MAC2 0xd9
#define BBU_DEST_MAC3 0x22
#define BBU_DEST_MAC4 0x0a
#define BBU_DEST_MAC5 0xac
*/
/*!\brief opaque ethernet data structure */
/*!\brief opaque ethernet data structure */
typedef
struct
{
typedef
struct
{
...
@@ -142,12 +127,12 @@ typedef struct {
...
@@ -142,12 +127,12 @@ typedef struct {
/*!\brief packet header */
/*!\brief packet header */
typedef
struct
{
typedef
struct
{
/*!\brief packet sequence number max value=packets per frame*/
uint16_t
seq_num
;
/*!\brief antenna port used to resynchronize */
uint16_t
antenna_id
;
/*!\brief packet's timestamp */
/*!\brief packet's timestamp */
openair0_timestamp
timestamp
;
openair0_timestamp
timestamp
;
/*!\brief variable declared for alignment purposes (sample size=32 bit) */
int16_t
not_used
;
/*!\brief antenna port used to resynchronize */
int16_t
antenna_id
;
}
header_t
;
}
header_t
;
/*!\brief different options for ethernet tuning in socket and driver level */
/*!\brief different options for ethernet tuning in socket and driver level */
...
...
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