mirror of
https://github.com/Gradiant/5g-images.git
synced 2025-10-23 00:02:08 +00:00
srsran image (#29)
This commit is contained in:
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@@ -41,10 +41,11 @@ jobs:
|
||||
echo "build image $image"
|
||||
pushd $image
|
||||
source image_info.sh
|
||||
IMAGE_NAME=${image#"images/"}
|
||||
if [ -z "$PLATFORMS" ]; then
|
||||
docker build -t $image:$IMAGE_TAG --build-arg version=$IMAGE_TAG .
|
||||
docker build -t $IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG .
|
||||
else
|
||||
docker buildx build -t $image:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} .
|
||||
docker buildx build -t $IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} .
|
||||
fi
|
||||
popd
|
||||
done
|
||||
|
7
.github/workflows/push.yml
vendored
7
.github/workflows/push.yml
vendored
@@ -53,11 +53,12 @@ jobs:
|
||||
for image in $list_changed; do
|
||||
pushd $image
|
||||
source image_info.sh
|
||||
IMAGE_NAME=${image#"images/"}
|
||||
if [ -z "$PLATFORMS" ]; then
|
||||
docker build -t $image:$IMAGE_TAG --build-arg version=$IMAGE_TAG .
|
||||
docker push $image:$IMAGET_TAG
|
||||
docker build -t $IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG .
|
||||
docker push $IMAGE_NAME:$IMAGET_TAG
|
||||
else
|
||||
docker buildx build -t $image:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} . --push
|
||||
docker buildx build -t $IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} . --push
|
||||
fi
|
||||
git tag -a "v${IMAGE_TAG}" -m "Automated push of v${IMAGE_TAG}"
|
||||
git push origin "v${IMAGE_TAG}"
|
||||
|
@@ -5,36 +5,37 @@ services:
|
||||
environment:
|
||||
MONGO_INITDB_DATABASE: open5gs
|
||||
webui:
|
||||
image: openverso/open5gs-webui:2.3.2
|
||||
image: openverso/open5gs-webui:2.4.4
|
||||
restart: on-failure
|
||||
environment:
|
||||
DB_URI: mongodb://mongo/open5gs
|
||||
NODE_ENV: dev
|
||||
ports:
|
||||
- 3000:3000
|
||||
nrf:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: open5gs-nrfd
|
||||
restart : on-failure
|
||||
smf:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: open5gs-smfd
|
||||
restart : on-failure
|
||||
mme:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: open5gs-mmed
|
||||
restart: on-failure
|
||||
ports:
|
||||
- 36412:36412
|
||||
sgwc:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: open5gs-sgwcd
|
||||
restart : on-failure
|
||||
sgwu:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: open5gs-sgwud
|
||||
restart : on-failure
|
||||
upf:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: ["open5gs-upfd"]
|
||||
cap_add:
|
||||
- all
|
||||
@@ -43,22 +44,15 @@ services:
|
||||
ports:
|
||||
- 2152:2152
|
||||
pcrf:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: ["open5gs-pcrfd"]
|
||||
environment:
|
||||
DB_URI: mongodb://mongo/open5gs
|
||||
restart: on-failure
|
||||
hss:
|
||||
image: openverso/open5gs:2.3.2
|
||||
image: openverso/open5gs:2.4.4
|
||||
command: open5gs-hssd
|
||||
environment:
|
||||
DB_URI: mongodb://mongo/open5gs
|
||||
restart: on-failure
|
||||
portainer:
|
||||
image: portainer/portainer-ce
|
||||
ports:
|
||||
- 9000:9000
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
|
||||
|
||||
|
@@ -1,437 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
version=0.9.1
|
||||
|
||||
display_help() {
|
||||
echo "open5gs-dbctl: Open5GS Database Configuration Tool ($version)"
|
||||
echo "COMMANDS:" >&2
|
||||
echo " add {imsi key opc}: adds a user to the database with default values"
|
||||
echo " add {imsi ip key opc}: adds a user to the database with default values and a IPv4 address for the UE"
|
||||
echo " addT1 {imsi key opc}: adds a user to the database with 3 differents apns"
|
||||
echo " addT1 {imsi ip key opc}: adds a user to the database with 3 differents apns and the same IPv4 address for the each apn"
|
||||
echo " remove {imsi}: removes a user from the database"
|
||||
echo " reset: WIPES OUT the database and restores it to an empty default"
|
||||
echo " static_ip {imsi ip4}: adds a static IP assignment to an already-existing user"
|
||||
echo " static_ip6 {imsi ip6}: adds a static IPv6 assignment to an already-existing user"
|
||||
echo " type {imsi type}: changes the PDN-Type of the first PDN: 0 = IPv4, 1 = IPv6, 2 = IPv4v6, 3 = v4 OR v6"
|
||||
echo " help: displays this message and exits"
|
||||
echo " default values are as follows: APN \"internet\", dl_bw/ul_bw 1 Gbps, PGW address is 127.0.0.3, IPv4 only"
|
||||
}
|
||||
|
||||
|
||||
if [ "$#" -lt 1 ]; then
|
||||
display_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "help" ]; then
|
||||
display_help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "add" ]; then
|
||||
if [ "$#" -eq 4 ]; then
|
||||
IMSI=$2
|
||||
KI=$3
|
||||
OPC=$4
|
||||
|
||||
mongo --eval "db.subscribers.update( { \"imsi\" : \"$IMSI\" },
|
||||
{ \$setOnInsert:
|
||||
{
|
||||
\"imsi\" : \"$IMSI\",
|
||||
\"subscribed_rau_tau_timer\" : NumberInt(12),
|
||||
\"network_access_mode\" : NumberInt(2),
|
||||
\"subscriber_status\" : NumberInt(0),
|
||||
\"access_restriction_data\" : NumberInt(32),
|
||||
\"slice\" :
|
||||
[{
|
||||
\"sst\" : NumberInt(1),
|
||||
\"default_indicator\" : true,
|
||||
\"_id\" : new ObjectId(),
|
||||
\"session\" :
|
||||
[{
|
||||
\"name\" : \"internet\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
}],
|
||||
}],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3),},
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"security\" :
|
||||
{
|
||||
\"k\" : \"$KI\",
|
||||
\"amf\" : \"8000\",
|
||||
\"op\" : null,
|
||||
\"opc\" : \"$OPC\"
|
||||
},
|
||||
\"__v\" : 0
|
||||
},
|
||||
},
|
||||
upsert=true);" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$#" -eq 5 ]; then
|
||||
IMSI=$2
|
||||
IP=$3
|
||||
KI=$4
|
||||
OPC=$5
|
||||
|
||||
mongo --eval "db.subscribers.update( { \"imsi\" : \"$IMSI\" },
|
||||
{ \$setOnInsert:
|
||||
{
|
||||
\"imsi\" : \"$IMSI\",
|
||||
\"subscribed_rau_tau_timer\" : NumberInt(12),
|
||||
\"network_access_mode\" : NumberInt(2),
|
||||
\"subscriber_status\" : NumberInt(0),
|
||||
\"access_restriction_data\" : NumberInt(32),
|
||||
\"slice\" :
|
||||
[{
|
||||
\"sst\" : NumberInt(1),
|
||||
\"default_indicator\" : true,
|
||||
\"_id\" : new ObjectId(),
|
||||
\"session\" :
|
||||
[{
|
||||
\"name\" : \"internet\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ue\" :
|
||||
{
|
||||
\"addr\" : \"$IP\",
|
||||
},
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
}],
|
||||
}],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3),},
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"security\" :
|
||||
{
|
||||
\"k\" : \"$KI\",
|
||||
\"amf\" : \"8000\",
|
||||
\"op\" : null,
|
||||
\"opc\" : \"$OPC\"
|
||||
},
|
||||
\"__v\" : 0
|
||||
},
|
||||
},
|
||||
upsert=true);" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl add imsi key opc\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "addT1" ]; then
|
||||
if [ "$#" -eq 4 ]; then
|
||||
IMSI=$2
|
||||
KI=$3
|
||||
OPC=$4
|
||||
|
||||
mongo --eval "db.subscribers.update( { \"imsi\" : \"$IMSI\" },
|
||||
{ \$setOnInsert:
|
||||
{
|
||||
\"imsi\" : \"$IMSI\",
|
||||
\"subscribed_rau_tau_timer\" : NumberInt(12),
|
||||
\"network_access_mode\" : NumberInt(2),
|
||||
\"subscriber_status\" : NumberInt(0),
|
||||
\"access_restriction_data\" : NumberInt(32),
|
||||
\"slice\" :
|
||||
[{
|
||||
\"sst\" : NumberInt(1),
|
||||
\"default_indicator\" : true,
|
||||
\"_id\" : new ObjectId(),
|
||||
\"session\" :
|
||||
[{
|
||||
\"name\" : \"internet\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
},{
|
||||
\"name\" : \"internet1\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
},{
|
||||
\"name\" : \"internet2\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
}],
|
||||
}],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3),},
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"security\" :
|
||||
{
|
||||
\"k\" : \"$KI\",
|
||||
\"amf\" : \"8000\",
|
||||
\"op\" : null,
|
||||
\"opc\" : \"$OPC\"
|
||||
},
|
||||
\"__v\" : 0
|
||||
},
|
||||
},
|
||||
upsert=true);" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$#" -eq 5 ]; then
|
||||
IMSI=$2
|
||||
IP=$3
|
||||
KI=$4
|
||||
OPC=$5
|
||||
|
||||
mongo --eval "db.subscribers.update( { \"imsi\" : \"$IMSI\" },
|
||||
{ \$setOnInsert:
|
||||
{
|
||||
\"imsi\" : \"$IMSI\",
|
||||
\"subscribed_rau_tau_timer\" : NumberInt(12),
|
||||
\"network_access_mode\" : NumberInt(2),
|
||||
\"subscriber_status\" : NumberInt(0),
|
||||
\"access_restriction_data\" : NumberInt(32),
|
||||
\"slice\" :
|
||||
[{
|
||||
\"sst\" : NumberInt(1),
|
||||
\"default_indicator\" : true,
|
||||
\"_id\" : new ObjectId(),
|
||||
\"session\" :
|
||||
[{
|
||||
\"name\" : \"internet\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ue\" :
|
||||
{
|
||||
\"addr\" : \"$IP\",
|
||||
},
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
},{
|
||||
\"name\" : \"internet1\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ue\" :
|
||||
{
|
||||
\"addr\" : \"$IP\",
|
||||
},
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
},{
|
||||
\"name\" : \"internet2\",
|
||||
\"type\" : NumberInt(3),
|
||||
\"_id\" : new ObjectId(),
|
||||
\"pcc_rule\" : [],
|
||||
\"ue\" :
|
||||
{
|
||||
\"addr\" : \"$IP\",
|
||||
},
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"qos\" :
|
||||
{
|
||||
\"index\" : NumberInt(9),
|
||||
\"arp\" :
|
||||
{
|
||||
\"priority_level\" : NumberInt(8),
|
||||
\"pre_emption_capability\" : NumberInt(1),
|
||||
\"pre_emption_vulnerability\" : NumberInt(1),
|
||||
},
|
||||
},
|
||||
}],
|
||||
}],
|
||||
\"ambr\" :
|
||||
{
|
||||
\"uplink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3),},
|
||||
\"downlink\" : { \"value\": NumberInt(1), \"unit\" : NumberInt(3) },
|
||||
},
|
||||
\"security\" :
|
||||
{
|
||||
\"k\" : \"$KI\",
|
||||
\"amf\" : \"8000\",
|
||||
\"op\" : null,
|
||||
\"opc\" : \"$OPC\"
|
||||
},
|
||||
\"__v\" : 0
|
||||
},
|
||||
},
|
||||
upsert=true);" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl add imsi key opc\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "remove" ]; then
|
||||
if [ "$#" -ne 2 ]; then
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl remove imsi\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IMSI=$2
|
||||
mongo --eval "db.subscribers.remove({\"imsi\": \"$IMSI\"});" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "reset" ]; then
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl reset\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mongo --eval "db.subscribers.remove({});" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "static_ip" ]; then
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl static_ip imsi ip\""
|
||||
exit 1
|
||||
fi
|
||||
IMSI=$2
|
||||
IP=$3
|
||||
|
||||
mongo --eval "db.subscribers.update({\"imsi\": \"$IMSI\"},{\$set: { \"slice.0.session.0.ue.addr\": \"$IP\" }});" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "static_ip6" ]; then
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl static_ip6 imsi ip\""
|
||||
exit 1
|
||||
fi
|
||||
IMSI=$2
|
||||
IP=$3
|
||||
|
||||
mongo --eval "db.subscribers.update({\"imsi\": \"$IMSI\"},{\$set: { \"slice.0.session.0.ue.addr6\": \"$IP\" }});" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "type" ]; then
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo "open5gs-dbctl: incorrect number of args, format is \"open5gs-dbctl type imsi type\""
|
||||
exit 1
|
||||
fi
|
||||
IMSI=$2
|
||||
TYPE=$3
|
||||
|
||||
mongo --eval "db.subscribers.update({\"imsi\": \"$IMSI\"},{\$set: { \"slice.0.session.0.type\": NumberInt($TYPE) }});" open5gs
|
||||
exit 0
|
||||
fi
|
||||
|
||||
display_help
|
@@ -1,23 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
MONGO_CONTAINER=open5gs-and-srslte_mongo_1
|
||||
# Run a container open5gs-dbctl client to insert user in core Database
|
||||
|
||||
: 'open5gs-dbctl: Open5GS Database Configuration Tool (0.9.1)
|
||||
COMMANDS:
|
||||
add {imsi key opc}: adds a user to the database with default values
|
||||
add {imsi ip key opc}: adds a user to the database with default values and a IPv4 address for the UE
|
||||
addT1 {imsi key opc}: adds a user to the database with 3 differents apns
|
||||
addT1 {imsi ip key opc}: adds a user to the database with 3 differents apns and the same IPv4 address for the each apn
|
||||
remove {imsi}: removes a user from the database
|
||||
reset: WIPES OUT the database and restores it to an empty default
|
||||
static_ip {imsi ip4}: adds a static IP assignment to an already-existing user
|
||||
static_ip6 {imsi ip6}: adds a static IPv6 assignment to an already-existing user
|
||||
type {imsi type}: changes the PDN-Type of the first PDN: 0 = IPv4, 1 = IPv6, 2 = IPv4v6, 3 = v4 OR v6
|
||||
help: displays this message and exits
|
||||
default values are as follows: APN "internet", dl_bw/ul_bw 1 Gbps, PGW address is 127.0.0.3, IPv4 only
|
||||
'
|
||||
|
||||
docker cp open5gs-dbctl $MONGO_CONTAINER:/
|
||||
|
||||
docker exec -ti $MONGO_CONTAINER /open5gs-dbctl add 901700000000001 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA
|
||||
docker run -ti --rm --net open5gs-and-srslte_default openverso/open5gs-dbctl:0.9.1 open5gs-dbctl --db_uri=mongodb://mongo/open5gs add 901700000000001 465B5CE8B199B49FAA5F0A2EE238A6BC E8ED289DEBA952E4283B54E88E6183CA
|
||||
|
||||
|
@@ -1,10 +1,7 @@
|
||||
version: '3'
|
||||
services:
|
||||
enodeb:
|
||||
build:
|
||||
context: ../../srs-lte/
|
||||
dockerfile: Dockerfile
|
||||
image: openverso/srs-lte:20_10_1
|
||||
image: openverso/srsran:21_10
|
||||
command:
|
||||
- enb
|
||||
privileged: true
|
||||
@@ -18,10 +15,7 @@ services:
|
||||
MNC: "70"
|
||||
|
||||
ue:
|
||||
build:
|
||||
context: ../../srs-lte/
|
||||
dockerfile: Dockerfile
|
||||
image: openverso/srs-lte:20_10_1
|
||||
image: openverso/srsran:21_10
|
||||
command:
|
||||
- ue
|
||||
privileged: true
|
||||
|
@@ -1,6 +1,6 @@
|
||||
FROM ubuntu:20.04 as builder
|
||||
|
||||
ARG version=20_04_1
|
||||
ARG version
|
||||
ENV VERSION=$version
|
||||
|
||||
LABEL org.opencontainers.image.authors="Carlos Giraldo <cgiraldo@gradiant.org>" \
|
||||
@@ -30,11 +30,45 @@ RUN cd /opt && git clone https://github.com/srsran/srsRAN.git && \
|
||||
|
||||
RUN cd /opt/srsRAN/build && make install
|
||||
|
||||
# Move configuration
|
||||
RUN mkdir -p /opt/srsRAN/target/etc/srsran && \
|
||||
cd /opt/srsRAN/target/share/srsran/ && find -name '*.example' | while read f; do mv "$f" "/opt/srsRAN/target/etc/srsran/${f%.example}"; done
|
||||
|
||||
# Embed env variables in enb.conf files
|
||||
RUN cd /opt/srsRAN/target/etc/srsran && \
|
||||
sed -i 's/^enb_id =.*/enb_id = ${ENB_ID}/' enb.conf && \
|
||||
sed -i 's/^mcc =.*/mcc = ${MCC}/' enb.conf && \
|
||||
sed -i 's/^mnc =.*/mnc = ${MNC}/' enb.conf && \
|
||||
sed -i 's/^mme_addr =.*/mme_addr = ${MME_ADDR}/' enb.conf && \
|
||||
sed -i 's/^gtp_bind_addr =.*/gtp_bind_addr = ${GTP_BIND_ADDR}/' enb.conf && \
|
||||
sed -i 's/^s1c_bind_addr =.*/s1c_bind_addr = ${S1C_BIND_ADDR}/' enb.conf && \
|
||||
sed -i 's/#device_name = zmq/device_name = zmq\ndevice_args = tx_port=tcp:\/\/*:2000,rx_port=tcp:\/\/${UE_ADDRESS}:2001,id=enb,base_srate=23.04e6/' enb.conf
|
||||
|
||||
# Embed env variables in rr.conf files
|
||||
RUN cd /opt/srsRAN/target/etc/srsran && \
|
||||
sed -i 's/tac =.*/tac = ${TAC}/' rr.conf
|
||||
|
||||
# Embed env variables in ue.conf files
|
||||
RUN cd /opt/srsRAN/target/etc/srsran && \
|
||||
sed -E -i 's/^algo +=.*/algo = ${ALGO}/' ue.conf && \
|
||||
sed -E -i 's/^#?opc +=.*/opc = ${OPC}/' ue.conf && \
|
||||
sed -E -i 's/^k +=.*/k = ${KEY}/' ue.conf && \
|
||||
sed -i 's/^imsi =.*/imsi = ${MCC}${MNC}${MSISDN}/' ue.conf && \
|
||||
sed -i 's/#device_name = zmq/device_name = zmq\ndevice_args = tx_port=tcp:\/\/*:2001,rx_port=tcp:\/\/${ENB_ADDRESS}:2000,id=ue,base_srate=23.04e6/' ue.conf
|
||||
|
||||
# Embed env variables in epc.conf files
|
||||
RUN cd /opt/srsRAN/target/etc/srsran && \
|
||||
sed -i 's/^tac =.*/tac = ${TAC}/' epc.conf && \
|
||||
sed -i 's/^mcc =.*/mcc = ${MCC}/' epc.conf && \
|
||||
sed -i 's/^mnc =.*/mnc = ${MNC}/' epc.conf && \
|
||||
sed -i 's/^mme_bind_addr =.*/mme_bind_addr = ${MME_BIND_ADDR}/' epc.conf && \
|
||||
sed -i 's/^gtpu_bind_addr =.*/gtpu_bind_addr = ${MME_BIND_ADDR}/' epc.conf && \
|
||||
sed -i 's/^sgi_if_name =.*/sgi_if_name = ${IPV4_TUN_ADDR}/' epc.conf
|
||||
|
||||
|
||||
FROM ubuntu:20.04
|
||||
|
||||
ARG version=20_04_1
|
||||
ARG version
|
||||
ENV VERSION=$version
|
||||
|
||||
LABEL org.opencontainers.image.authors="Carlos Giraldo <cgiraldo@gradiant.org>" \
|
||||
@@ -42,9 +76,6 @@ LABEL org.opencontainers.image.authors="Carlos Giraldo <cgiraldo@gradiant.org>"
|
||||
org.opencontainers.image.licenses="Apache-2.0" \
|
||||
org.opencontainers.image.version="$version"
|
||||
|
||||
COPY --from=builder /opt/srsRAN/target/ /usr/
|
||||
|
||||
|
||||
# libraries
|
||||
RUN apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
@@ -57,14 +88,17 @@ RUN apt-get update && \
|
||||
libzmq5 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /opt/srsRAN/target/bin/* /usr/bin/
|
||||
COPY --from=builder /opt/srsRAN/target/etc/srsran/* /etc/srsran/
|
||||
COPY --from=builder /opt/srsRAN/target/include/ /usr/include/
|
||||
COPY --from=builder /opt/srsRAN/target/lib/ /usr/lib/
|
||||
|
||||
#Tools
|
||||
RUN apt-get update && \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
gettext-base iproute2 dnsutils curl iptables iputils-ping traceroute && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY etc/srsran /etc/srsran
|
||||
|
||||
ENV ENB_ID=0x19B \
|
||||
MCC=001 \
|
||||
MNC=01 \
|
||||
@@ -76,18 +110,13 @@ ENV ENB_ID=0x19B \
|
||||
UE_HOSTNAME=ue \
|
||||
ENB_HOSTNAME=enodeb \
|
||||
MSISDN=0000000001 \
|
||||
ALGO=mil \
|
||||
KEY=465B5CE8B199B49FAA5F0A2EE238A6BC \
|
||||
OPC=E8ED289DEBA952E4283B54E88E6183CA
|
||||
|
||||
ENV IPV4_TUN_SUBNET="10.45.0.0/16" \
|
||||
IPV4_TUN_ADDR="10.45.0.1" \
|
||||
ENABLE_NAT=true
|
||||
#ENV MME_HOSTNAME=mme
|
||||
#ENV MME_ADDR=192.168.0.2
|
||||
|
||||
#zmq ports
|
||||
EXPOSE 2000/tcp
|
||||
EXPOSE 2001/tcp
|
||||
|
||||
COPY entrypoint.sh /
|
||||
|
||||
|
@@ -1,18 +0,0 @@
|
||||
.PHONY: all build push
|
||||
|
||||
all: build push
|
||||
|
||||
REGISTRY=docker.io
|
||||
IMAGE=openverso/srs-lte
|
||||
TAG=21_10
|
||||
|
||||
|
||||
build:
|
||||
docker build --build-arg version=${TAG} -t ${IMAGE}:${TAG} .
|
||||
|
||||
push:
|
||||
echo "Insert credentials to registry: "; \
|
||||
docker login ${REGISTRY}; \
|
||||
docker tag ${IMAGE}:${TAG} ${REGISTRY}/${IMAGE}:${TAG}; \
|
||||
docker push ${REGISTRY}/${IMAGE}:${TAG}; \
|
||||
echo "WARNING: credentials are stored in your local docker configuration. execute docker logout ${REGISTRY} if you want to remove it."
|
@@ -58,16 +58,16 @@ case "$command" in
|
||||
epc) echo "Launching srsepc"
|
||||
tun_create
|
||||
envsubst < /etc/srsran/epc.conf > epc.conf
|
||||
/usr/bin/srsepc /epc.conf $@
|
||||
/bin/srsepc /epc.conf $@
|
||||
;;
|
||||
enb) echo "Launching srsenb"
|
||||
envsubst < /etc/srsran/enb.conf > enb.conf
|
||||
envsubst < /etc/srsran/rr.conf > rr.conf
|
||||
/usr/bin/srsenb enb.conf $@
|
||||
/bin/srsenb enb.conf $@
|
||||
;;
|
||||
ue) echo "Launching srsue"
|
||||
envsubst < /etc/srsran/ue.conf > ue.conf
|
||||
/usr/bin/srsue /ue.conf $@
|
||||
/bin/srsue /ue.conf $@
|
||||
;;
|
||||
*) echo "unknown component $1. should be epc, enb or ue."
|
||||
;;
|
||||
|
@@ -1,397 +0,0 @@
|
||||
#####################################################################
|
||||
# srsENB configuration file
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
# eNB configuration
|
||||
#
|
||||
# enb_id: 20-bit eNB identifier.
|
||||
# mcc: Mobile Country Code
|
||||
# mnc: Mobile Network Code
|
||||
# mme_addr: IP address of MME for S1 connnection
|
||||
# gtp_bind_addr: Local IP address to bind for GTP connection
|
||||
# gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic
|
||||
# s1c_bind_addr: Local IP address to bind for S1AP connection
|
||||
# s1c_bind_port: Source port for S1AP connection (0 means any)
|
||||
# n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100)
|
||||
# tm: Transmission mode 1-4 (TM1 default)
|
||||
# nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4)
|
||||
#
|
||||
#####################################################################
|
||||
[enb]
|
||||
enb_id = ${ENB_ID}
|
||||
mcc = ${MCC}
|
||||
mnc = ${MNC}
|
||||
mme_addr = ${MME_ADDR}
|
||||
gtp_bind_addr = ${GTP_BIND_ADDR}
|
||||
s1c_bind_addr = ${S1C_BIND_ADDR}
|
||||
s1c_bind_port = 0
|
||||
n_prb = 50
|
||||
#tm = 4
|
||||
#nof_ports = 2
|
||||
|
||||
#####################################################################
|
||||
# eNB configuration files
|
||||
#
|
||||
# sib_config: SIB1, SIB2 and SIB3 configuration file
|
||||
# note: When enabling MBMS, use the sib.conf.mbsfn configuration file which includes SIB13
|
||||
# rr_config: Radio Resources configuration file
|
||||
# rb_config: SRB/DRB configuration file
|
||||
#####################################################################
|
||||
[enb_files]
|
||||
sib_config = sib.conf
|
||||
rr_config = rr.conf
|
||||
rb_config = rb.conf
|
||||
|
||||
#####################################################################
|
||||
# RF configuration
|
||||
#
|
||||
# dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf)
|
||||
# tx_gain: Transmit gain (dB).
|
||||
# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
|
||||
#
|
||||
# Optional parameters:
|
||||
# dl_freq: Override DL frequency corresponding to dl_earfcn
|
||||
# ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set)
|
||||
# device_name: Device driver family
|
||||
# Supported options: "auto" (uses first driver found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq"
|
||||
# device_args: Arguments for the device driver. Options are "auto" or any string.
|
||||
# Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
|
||||
# Default for bladeRF: ""
|
||||
# time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay
|
||||
# from antenna to timestamp insertion.
|
||||
# Default "auto". B210 USRP: 100 samples, bladeRF: 27
|
||||
#####################################################################
|
||||
[rf]
|
||||
#dl_earfcn = 3350
|
||||
tx_gain = 80
|
||||
rx_gain = 40
|
||||
|
||||
#device_name = auto
|
||||
|
||||
# For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
|
||||
# USRP B210: num_recv_frames=64,num_send_frames=64
|
||||
# And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args
|
||||
|
||||
# For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
|
||||
# USRP B210: send_frame_size=512,recv_frame_size=512
|
||||
|
||||
#device_args = auto
|
||||
#time_adv_nsamples = auto
|
||||
|
||||
# Example for ZMQ-based operation with TCP transport for I/Q samples
|
||||
#device_name = zmq
|
||||
#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
|
||||
|
||||
#####################################################################
|
||||
# Packet capture configuration
|
||||
#
|
||||
# MAC-layer packets are captured to a file in the compact format which can
|
||||
# be decoded by Wireshark. For decoding, use the UDP dissector and the UDP
|
||||
# heuristic dissection. Edit the preferences (Edit > Preferences >
|
||||
# Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with
|
||||
# Protocol=udp. Further, enable the heuristic dissection in UDP under:
|
||||
# Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp
|
||||
# For more information see: https://wiki.wireshark.org/MAC-LTE
|
||||
# Configuring this Wireshark preferences is needed for decoding the MAC PCAP
|
||||
# files as well as for the live network capture option.
|
||||
#
|
||||
# Please note that this setting will by default only capture MAC
|
||||
# frames on dedicated channels, and not SIB. You have to build with
|
||||
# WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want
|
||||
# SIB to be part of the MAC pcap file.
|
||||
#
|
||||
# S1AP Packets are captured to a file in the compact format which can
|
||||
# be decoded by the Wireshark s1ap dissector with DLT 150.
|
||||
# To use the dissector, edit the preferences for DLT_USER to
|
||||
# add an entry with DLT=150, Payload Protocol=s1ap.
|
||||
#
|
||||
# mac_enable: Enable MAC layer packet captures (true/false)
|
||||
# mac_filename: File path to use for packet captures
|
||||
# s1ap_enable: Enable or disable the PCAP.
|
||||
# s1ap_filename: File name where to save the PCAP.
|
||||
#
|
||||
# mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false)
|
||||
# bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0")
|
||||
# bind_port: Bind port for MAC network trace (default: 5687)
|
||||
# client_ip: Client IP address for MAC network trace (default: "127.0.0.1")
|
||||
# client_port Client IP address for MAC network trace (default: 5847)
|
||||
#####################################################################
|
||||
[pcap]
|
||||
enable = false
|
||||
filename = /tmp/enb.pcap
|
||||
s1ap_enable = false
|
||||
s1ap_filename = /tmp/enb_s1ap.pcap
|
||||
|
||||
mac_net_enable = false
|
||||
bind_ip = 0.0.0.0
|
||||
bind_port = 5687
|
||||
client_ip = 127.0.0.1
|
||||
client_port = 5847
|
||||
|
||||
#####################################################################
|
||||
# Log configuration
|
||||
#
|
||||
# Log levels can be set for individual layers. "all_level" sets log
|
||||
# level for all layers unless otherwise configured.
|
||||
# Format: e.g. phy_level = info
|
||||
#
|
||||
# In the same way, packet hex dumps can be limited for each level.
|
||||
# "all_hex_limit" sets the hex limit for all layers unless otherwise
|
||||
# configured.
|
||||
# Format: e.g. phy_hex_limit = 32
|
||||
#
|
||||
# Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all
|
||||
# Logging levels: debug, info, warning, error, none
|
||||
#
|
||||
# filename: File path to use for log output. Can be set to stdout
|
||||
# to print logs to standard output
|
||||
# file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
|
||||
# If set to negative, a single log file will be created.
|
||||
#####################################################################
|
||||
[log]
|
||||
all_level = warning
|
||||
all_hex_limit = 32
|
||||
filename = /tmp/enb.log
|
||||
file_max_size = -1
|
||||
|
||||
[gui]
|
||||
enable = false
|
||||
|
||||
#####################################################################
|
||||
# Scheduler configuration options
|
||||
#
|
||||
# sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf)
|
||||
# min_aggr_level: Optional minimum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
|
||||
# max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
|
||||
# adaptive_aggr_level: Boolean flag to enable/disable adaptive aggregation level based on target BLER
|
||||
# pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified)
|
||||
# pdsch_max_mcs: Optional PDSCH MCS limit
|
||||
# pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified)
|
||||
# pusch_max_mcs: Optional PUSCH MCS limit
|
||||
# min_nof_ctrl_symbols: Minimum number of control symbols
|
||||
# max_nof_ctrl_symbols: Maximum number of control symbols
|
||||
# pucch_multiplex_enable: Allow PUCCH HARQ to collide with PUSCH and other PUCCH
|
||||
# pucch_harq_max_rb: Maximum number of RB to be used for PUCCH on the edges of the grid.
|
||||
# If defined and greater than 0, the scheduler will avoid DL PDCCH allocations if
|
||||
# PUCCH HARQ falls outside this region
|
||||
# target_bler: Target BLER (in decimal) to achieve via adaptive link
|
||||
# max_delta_dl_cqi: Maximum shift in CQI for adaptive DL link
|
||||
# max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link
|
||||
# adaptive_dl_mcs_step_size: Step size or learning rate used in adaptive DL MCS link
|
||||
# adaptive_ul_mcs_step_size: Step size or learning rate used in adaptive UL MCS link
|
||||
# min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1
|
||||
# ul_snr_avg_alpha: Exponential Average alpha coefficient used in estimation of UL SNR
|
||||
# init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant
|
||||
# init_dl_cqi: DL CQI value used before any CQI report is available to the eNB
|
||||
# max_sib_coderate: Upper bound on SIB and RAR grants coderate
|
||||
# pdcch_cqi_offset: CQI offset in derivation of PDCCH aggregation level
|
||||
# nr_pdsch_mcs: Optional fixed NR PDSCH MCS (ignores reported CQIs if specified)
|
||||
# nr_pusch_mcs: Optional fixed NR PUSCH MCS (ignores reported CQIs if specified)
|
||||
#
|
||||
#####################################################################
|
||||
[scheduler]
|
||||
#policy = time_pf
|
||||
#policy_args = 2
|
||||
#min_aggr_level = 0
|
||||
#max_aggr_level = 3
|
||||
#adaptive_aggr_level = false
|
||||
#pdsch_mcs = -1
|
||||
#pdsch_max_mcs = -1
|
||||
#pusch_mcs = -1
|
||||
#pusch_max_mcs = 16
|
||||
#min_nof_ctrl_symbols = 1
|
||||
#max_nof_ctrl_symbols = 3
|
||||
#pucch_multiplex_enable = false
|
||||
#pucch_harq_max_rb = 0
|
||||
#target_bler = 0.05
|
||||
#max_delta_dl_cqi = 5
|
||||
#max_delta_ul_snr = 5
|
||||
#adaptive_dl_mcs_step_size = 0.001
|
||||
#adaptive_ul_mcs_step_size = 0.001
|
||||
#min_tpc_tti_interval = 1
|
||||
#ul_snr_avg_alpha=0.05
|
||||
#init_ul_snr_value=5
|
||||
#init_dl_cqi=5
|
||||
#max_sib_coderate=0.3
|
||||
#pdcch_cqi_offset=0
|
||||
#nr_pdsch_mcs=28
|
||||
#nr_pusch_mcs=28
|
||||
|
||||
#####################################################################
|
||||
# eMBMS configuration options
|
||||
#
|
||||
# enable: Enable MBMS transmission in the eNB
|
||||
# m1u_multiaddr: Multicast address the M1-U socket will register to
|
||||
# m1u_if_addr: Address of the interface the M1-U interface will listen to for multicast packets
|
||||
# mcs: Modulation and Coding scheme for MBMS traffic
|
||||
#
|
||||
#####################################################################
|
||||
[embms]
|
||||
#enable = false
|
||||
#m1u_multiaddr = 239.255.0.1
|
||||
#m1u_if_addr = 127.0.1.201
|
||||
#mcs = 20
|
||||
|
||||
|
||||
|
||||
#####################################################################
|
||||
# Channel emulator options:
|
||||
# enable: Enable/disable internal Downlink/Uplink channel emulator
|
||||
#
|
||||
# -- AWGN Generator
|
||||
# awgn.enable: Enable/disable AWGN generator
|
||||
# awgn.snr: Target SNR in dB
|
||||
#
|
||||
# -- Fading emulator
|
||||
# fading.enable: Enable/disable fading simulator
|
||||
# fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
|
||||
#
|
||||
# -- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2
|
||||
# Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period
|
||||
# delay.enable: Enable/disable delay simulator
|
||||
# delay.period_s: Delay period in seconds
|
||||
# delay.init_time_s: Delay initial time in seconds
|
||||
# delay.maximum_us: Maximum delay in microseconds
|
||||
# delay.minumum_us: Minimum delay in microseconds
|
||||
#
|
||||
# -- Radio-Link Failure (RLF) Emulator
|
||||
# rlf.enable: Enable/disable RLF simulator
|
||||
# rlf.t_on_ms: Time for On state of the channel (ms)
|
||||
# rlf.t_off_ms: Time for Off state of the channel (ms)
|
||||
#
|
||||
# -- High Speed Train Doppler model simulator
|
||||
# hst.enable: Enable/disable HST simulator
|
||||
# hst.period_s: HST simulation period in seconds
|
||||
# hst.fd_hz: Doppler frequency in Hz
|
||||
# hst.init_time_s: Initial time in seconds
|
||||
#####################################################################
|
||||
[channel.dl]
|
||||
#enable = false
|
||||
|
||||
[channel.dl.awgn]
|
||||
#enable = false
|
||||
#snr = 30
|
||||
|
||||
[channel.dl.fading]
|
||||
#enable = false
|
||||
#model = none
|
||||
|
||||
[channel.dl.delay]
|
||||
#enable = false
|
||||
#period_s = 3600
|
||||
#init_time_s = 0
|
||||
#maximum_us = 100
|
||||
#minimum_us = 10
|
||||
|
||||
[channel.dl.rlf]
|
||||
#enable = false
|
||||
#t_on_ms = 10000
|
||||
#t_off_ms = 2000
|
||||
|
||||
[channel.dl.hst]
|
||||
#enable = false
|
||||
#period_s = 7.2
|
||||
#fd_hz = 750.0
|
||||
#init_time_s = 0.0
|
||||
|
||||
[channel.ul]
|
||||
#enable = false
|
||||
|
||||
[channel.ul.awgn]
|
||||
#enable = false
|
||||
#n0 = -30
|
||||
|
||||
[channel.ul.fading]
|
||||
#enable = false
|
||||
#model = none
|
||||
|
||||
[channel.ul.delay]
|
||||
#enable = false
|
||||
#period_s = 3600
|
||||
#init_time_s = 0
|
||||
#maximum_us = 100
|
||||
#minimum_us = 10
|
||||
|
||||
[channel.ul.rlf]
|
||||
#enable = false
|
||||
#t_on_ms = 10000
|
||||
#t_off_ms = 2000
|
||||
|
||||
[channel.ul.hst]
|
||||
#enable = false
|
||||
#period_s = 7.2
|
||||
#fd_hz = -750.0
|
||||
#init_time_s = 0.0
|
||||
|
||||
|
||||
#####################################################################
|
||||
# Expert configuration options
|
||||
#
|
||||
# pusch_max_its: Maximum number of turbo decoder iterations (default: 4)
|
||||
# nr_pusch_max_its: Maximum number of LDPC iterations for NR (Default 10)
|
||||
# pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (experimental)
|
||||
# nof_phy_threads: Selects the number of PHY threads (maximum: 4, minimum: 1, default: 3)
|
||||
# metrics_period_secs: Sets the period at which metrics are requested from the eNB
|
||||
# metrics_csv_enable: Write eNB metrics to CSV file.
|
||||
# metrics_csv_filename: File path to use for CSV metrics
|
||||
# report_json_enable: Write eNB report to JSON file (default: disabled)
|
||||
# report_json_filename: Report JSON filename (default: /tmp/enb_report.json)
|
||||
# report_json_asn1_oct: Prints ASN1 messages encoded as an octet string instead of plain text in the JSON report file
|
||||
# alarms_log_enable: Enable Alarms logging (default: disabled)
|
||||
# alarms_filename: Alarms logging filename (default: /tmp/alarms.log)
|
||||
# tracing_enable: Write source code tracing information to a file
|
||||
# tracing_filename: File path to use for tracing information
|
||||
# tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store
|
||||
# stdout_ts_enable: Prints once per second the timestamp into stdout
|
||||
# pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance
|
||||
# tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
|
||||
# rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds)
|
||||
# max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100)
|
||||
# max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100)
|
||||
# max_prach_offset_us: Maximum allowed RACH offset (in us)
|
||||
# nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8)
|
||||
# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF
|
||||
# eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1)
|
||||
# eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0)
|
||||
# gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer)
|
||||
# ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds
|
||||
# ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds
|
||||
# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF
|
||||
# rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko
|
||||
#
|
||||
#####################################################################
|
||||
[expert]
|
||||
#pusch_max_its = 8 # These are half iterations
|
||||
#nr_pusch_max_its = 10
|
||||
#pusch_8bit_decoder = false
|
||||
#nof_phy_threads = 3
|
||||
#metrics_period_secs = 1
|
||||
#metrics_csv_enable = false
|
||||
#metrics_csv_filename = /tmp/enb_metrics.csv
|
||||
#report_json_enable = true
|
||||
#report_json_filename = /tmp/enb_report.json
|
||||
#report_json_asn1_oct = false
|
||||
#alarms_log_enable = true
|
||||
#alarms_filename = /tmp/enb_alarms.log
|
||||
#tracing_enable = true
|
||||
#tracing_filename = /tmp/enb_tracing.log
|
||||
#tracing_buffcapacity = 1000000
|
||||
#stdout_ts_enable = false
|
||||
#pregenerate_signals = false
|
||||
#tx_amplitude = 0.6
|
||||
#rrc_inactivity_timer = 30000
|
||||
#max_mac_dl_kos = 100
|
||||
#max_mac_ul_kos = 100
|
||||
#max_prach_offset_us = 30
|
||||
#nof_prealloc_ues = 8
|
||||
#rlf_release_timer_ms = 4000
|
||||
#lcid_padding = 3
|
||||
#eea_pref_list = EEA0, EEA2, EEA1
|
||||
#eia_pref_list = EIA2, EIA1, EIA0
|
||||
#gtpu_tunnel_timeout = 0
|
||||
#extended_cp = false
|
||||
#ts1_reloc_prep_timeout = 10000
|
||||
#ts1_reloc_overall_timeout = 10000
|
||||
#rlf_release_timer_ms = 4000
|
||||
#rlf_min_ul_snr_estim = -2
|
@@ -1,106 +0,0 @@
|
||||
#####################################################################
|
||||
# srsEPC configuration file
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
# MME configuration
|
||||
#
|
||||
# mme_code: 8-bit MME code identifies the MME within a group.
|
||||
# mme_group: 16-bit MME group identifier.
|
||||
# tac: 16-bit Tracking Area Code.
|
||||
# mcc: Mobile Country Code
|
||||
# mnc: Mobile Network Code
|
||||
# apn: Set Access Point Name (APN)
|
||||
# mme_bind_addr: IP bind addr to listen for eNB S1-MME connnections
|
||||
# dns_addr: DNS server address for the UEs
|
||||
# encryption_algo: Preferred encryption algorithm for NAS layer
|
||||
# (default: EEA0, support: EEA1, EEA2)
|
||||
# integrity_algo: Preferred integrity protection algorithm for NAS
|
||||
# (default: EIA1, support: EIA1, EIA2 (EIA0 not support)
|
||||
# paging_timer: Value of paging timer in seconds (T3413)
|
||||
#
|
||||
#####################################################################
|
||||
[mme]
|
||||
mme_code = 0x1a
|
||||
mme_group = 0x0001
|
||||
tac = 0x${TAC}
|
||||
mcc = ${MCC}
|
||||
mnc = ${MNC}
|
||||
mme_bind_addr = ${MME_BIND_ADDR}
|
||||
apn = srsapn
|
||||
dns_addr = 8.8.8.8
|
||||
encryption_algo = EEA0
|
||||
integrity_algo = EIA1
|
||||
paging_timer = 2
|
||||
|
||||
#####################################################################
|
||||
# HSS configuration
|
||||
#
|
||||
# db_file: Location of .csv file that stores UEs information.
|
||||
#
|
||||
#####################################################################
|
||||
[hss]
|
||||
db_file = user_db.csv
|
||||
|
||||
#####################################################################
|
||||
# SP-GW configuration
|
||||
#
|
||||
# gtpu_bind_addr: GTP-U bind address.
|
||||
# sgi_if_addr: SGi TUN interface IP address.
|
||||
# sgi_if_name: SGi TUN interface name.
|
||||
# max_paging_queue: Maximum packets in paging queue (per UE).
|
||||
#
|
||||
#####################################################################
|
||||
|
||||
[spgw]
|
||||
gtpu_bind_addr = ${MME_BIND_ADDR}
|
||||
sgi_if_addr = ${IPV4_TUN_ADDR}
|
||||
sgi_if_name = srs_spgw_sgi
|
||||
max_paging_queue = 100
|
||||
|
||||
####################################################################
|
||||
# PCAP configuration
|
||||
#
|
||||
# Packets are captured to file in the compact format decoded by
|
||||
# the Wireshark s1ap dissector and with DLT 150.
|
||||
# To use the dissector, edit the preferences for DLT_USER to
|
||||
# add an entry with DLT=150, Payload Protocol=s1ap.
|
||||
#
|
||||
# enable: Enable or disable the PCAP.
|
||||
# filename: File name where to save the PCAP.
|
||||
#
|
||||
####################################################################
|
||||
[pcap]
|
||||
enable = false
|
||||
filename = /tmp/epc.pcap
|
||||
|
||||
####################################################################
|
||||
# Log configuration
|
||||
#
|
||||
# Log levels can be set for individual layers. "all_level" sets log
|
||||
# level for all layers unless otherwise configured.
|
||||
# Format: e.g. s1ap_level = info
|
||||
#
|
||||
# In the same way, packet hex dumps can be limited for each level.
|
||||
# "all_hex_limit" sets the hex limit for all layers unless otherwise
|
||||
# configured.
|
||||
# Format: e.g. s1ap_hex_limit = 32
|
||||
#
|
||||
# Logging layers: nas, s1ap, mme_gtpc, spgw_gtpc, gtpu, spgw, hss, all
|
||||
# Logging levels: debug, info, warning, error, none
|
||||
#
|
||||
# filename: File path to use for log output. Can be set to stdout
|
||||
# to print logs to standard output
|
||||
#####################################################################
|
||||
[log]
|
||||
all_level = info
|
||||
all_hex_limit = 32
|
||||
filename = /tmp/epc.log
|
||||
|
||||
#nas_level = debug
|
||||
#s1ap_level = debug
|
||||
#mme_gtpc_level = debug
|
||||
#spgw_gtpc_level = debug
|
||||
#gtpu_level = debug
|
||||
#spgw_level = debug
|
||||
#hss_level = debug
|
@@ -1,47 +0,0 @@
|
||||
#####################################################################
|
||||
# srsMBMS configuration file
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
# MBMS-GW configuration
|
||||
#
|
||||
# name: MBMS-GW name
|
||||
# sgi_mb_if_name: SGi-mb TUN interface name
|
||||
# sgi_mb_if_addr: SGi-mb interface IP address
|
||||
# sgi_mb_if_mask: SGi-mb interface IP mask
|
||||
# m1u_multi_addr: Multicast group for eNBs (TODO this should be setup with M2/M3)
|
||||
# m1u_multi_if: IP of local interface for multicast traffic
|
||||
# m1u_multi_ttl: TTL for M1-U multicast traffic
|
||||
#
|
||||
#####################################################################
|
||||
[mbms_gw]
|
||||
name = srsmbmsgw01
|
||||
sgi_mb_if_name = sgi_mb
|
||||
sgi_mb_if_addr = 172.16.0.254
|
||||
sgi_mb_if_mask = 255.255.255.255
|
||||
m1u_multi_addr = 239.255.0.1
|
||||
m1u_multi_if = 127.0.1.200
|
||||
m1u_multi_ttl = 1
|
||||
|
||||
####################################################################
|
||||
# Log configuration
|
||||
#
|
||||
# Log levels can be set for individual layers. "all_level" sets log
|
||||
# level for all layers unless otherwise configured.
|
||||
# Format: e.g. s1ap_level = info
|
||||
#
|
||||
# In the same way, packet hex dumps can be limited for each level.
|
||||
# "all_hex_limit" sets the hex limit for all layers unless otherwise
|
||||
# configured.
|
||||
# Format: e.g. s1ap_hex_limit = 32
|
||||
#
|
||||
# Logging layers: mbms_gw, all
|
||||
# Logging levels: debug, info, warning, error, none
|
||||
#
|
||||
# filename: File path to use for log output. Can be set to stdout
|
||||
# to print logs to standard output
|
||||
#####################################################################
|
||||
[log]
|
||||
all_level = debug
|
||||
all_hex_limit = 32
|
||||
filename = /tmp/mbms.log
|
@@ -1,95 +0,0 @@
|
||||
// All times are in ms. Use -1 for infinity, where available
|
||||
|
||||
// srb1_config = {
|
||||
// rlc_config = {
|
||||
// ul_am = {
|
||||
// t_poll_retx = 45;
|
||||
// poll_pdu = -1;
|
||||
// poll_byte = -1;
|
||||
// max_retx_thresh = 4;
|
||||
// };
|
||||
// dl_am = {
|
||||
// t_reordering = 35;
|
||||
// t_status_prohibit = 0;
|
||||
// };
|
||||
// enb_specific = {
|
||||
// dl_max_retx_thresh = 32;
|
||||
// };
|
||||
// };
|
||||
// }
|
||||
|
||||
// srb2_config = {
|
||||
// rlc_config = {
|
||||
// ul_am = {
|
||||
// t_poll_retx = 45;
|
||||
// poll_pdu = -1;
|
||||
// poll_byte = -1;
|
||||
// max_retx_thresh = 4;
|
||||
// };
|
||||
// dl_am = {
|
||||
// t_reordering = 35;
|
||||
// t_status_prohibit = 0;
|
||||
// };
|
||||
// enb_specific = {
|
||||
// dl_max_retx_thresh = 32;
|
||||
// };
|
||||
// };
|
||||
// }
|
||||
|
||||
qci_config = (
|
||||
|
||||
{
|
||||
qci=7;
|
||||
pdcp_config = {
|
||||
discard_timer = -1;
|
||||
pdcp_sn_size = 12;
|
||||
}
|
||||
rlc_config = {
|
||||
ul_um = {
|
||||
sn_field_length = 10;
|
||||
};
|
||||
dl_um = {
|
||||
sn_field_length = 10;
|
||||
t_reordering = 45;
|
||||
};
|
||||
};
|
||||
logical_channel_config = {
|
||||
priority = 13;
|
||||
prioritized_bit_rate = -1;
|
||||
bucket_size_duration = 100;
|
||||
log_chan_group = 2;
|
||||
};
|
||||
enb_specific = {
|
||||
dl_max_retx_thresh = 32;
|
||||
};
|
||||
},
|
||||
{
|
||||
qci=9;
|
||||
pdcp_config = {
|
||||
discard_timer = 150;
|
||||
status_report_required = true;
|
||||
}
|
||||
rlc_config = {
|
||||
ul_am = {
|
||||
t_poll_retx = 120;
|
||||
poll_pdu = 64;
|
||||
poll_byte = 750;
|
||||
max_retx_thresh = 16;
|
||||
};
|
||||
dl_am = {
|
||||
t_reordering = 50;
|
||||
t_status_prohibit = 50;
|
||||
};
|
||||
};
|
||||
logical_channel_config = {
|
||||
priority = 11;
|
||||
prioritized_bit_rate = -1;
|
||||
bucket_size_duration = 100;
|
||||
log_chan_group = 3;
|
||||
};
|
||||
enb_specific = {
|
||||
dl_max_retx_thresh = 32;
|
||||
};
|
||||
}
|
||||
|
||||
);
|
@@ -1,117 +0,0 @@
|
||||
mac_cnfg =
|
||||
{
|
||||
phr_cnfg =
|
||||
{
|
||||
dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY
|
||||
periodic_phr_timer = 50;
|
||||
prohibit_phr_timer = 0;
|
||||
};
|
||||
ulsch_cnfg =
|
||||
{
|
||||
max_harq_tx = 4;
|
||||
periodic_bsr_timer = 20; // in ms
|
||||
retx_bsr_timer = 320; // in ms
|
||||
};
|
||||
|
||||
time_alignment_timer = -1; // -1 is infinity
|
||||
};
|
||||
|
||||
phy_cnfg =
|
||||
{
|
||||
phich_cnfg =
|
||||
{
|
||||
duration = "Normal";
|
||||
resources = "1/6";
|
||||
};
|
||||
|
||||
pusch_cnfg_ded =
|
||||
{
|
||||
beta_offset_ack_idx = 6;
|
||||
beta_offset_ri_idx = 6;
|
||||
beta_offset_cqi_idx = 6;
|
||||
};
|
||||
|
||||
// PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource.
|
||||
sched_request_cnfg =
|
||||
{
|
||||
dsr_trans_max = 64;
|
||||
period = 20; // in ms
|
||||
//subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all)
|
||||
nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number)
|
||||
};
|
||||
cqi_report_cnfg =
|
||||
{
|
||||
mode = "periodic";
|
||||
simultaneousAckCQI = true;
|
||||
period = 40; // in ms
|
||||
//subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all)
|
||||
m_ri = 8; // RI period in CQI period
|
||||
//subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI
|
||||
};
|
||||
};
|
||||
|
||||
cell_list =
|
||||
(
|
||||
{
|
||||
// rf_port = 0;
|
||||
cell_id = 0x01;
|
||||
tac = 0x${TAC};
|
||||
pci = 1;
|
||||
// root_seq_idx = 204;
|
||||
dl_earfcn = 3350;
|
||||
//ul_earfcn = 21400;
|
||||
ho_active = false;
|
||||
//meas_gap_period = 0; // 0 (inactive), 40 or 80
|
||||
//meas_gap_offset_subframe = [6, 12, 18, 24, 30];
|
||||
// target_pusch_sinr = -1;
|
||||
// target_pucch_sinr = -1;
|
||||
// enable_phr_handling = false;
|
||||
// min_phr_thres = 0;
|
||||
// allowed_meas_bw = 6;
|
||||
// t304 = 2000; // in msec. possible values: 50, 100, 150, 200, 500, 1000, 2000
|
||||
|
||||
// CA cells
|
||||
scell_list = (
|
||||
// {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true}
|
||||
)
|
||||
|
||||
// Cells available for handover
|
||||
meas_cell_list =
|
||||
(
|
||||
{
|
||||
eci = 0x19C02;
|
||||
dl_earfcn = 2850;
|
||||
pci = 2;
|
||||
//direct_forward_path_available = false;
|
||||
//allowed_meas_bw = 6;
|
||||
//cell_individual_offset = 0;
|
||||
}
|
||||
);
|
||||
|
||||
// Select measurement report configuration (all reports are combined with all measurement objects)
|
||||
meas_report_desc =
|
||||
(
|
||||
{
|
||||
eventA = 3
|
||||
a3_offset = 6;
|
||||
hysteresis = 0;
|
||||
time_to_trigger = 480;
|
||||
trigger_quant = "RSRP";
|
||||
max_report_cells = 1;
|
||||
report_interv = 120;
|
||||
report_amount = 1;
|
||||
}
|
||||
);
|
||||
meas_quant_desc = {
|
||||
// averaging filter coefficient
|
||||
rsrq_config = 4;
|
||||
rsrp_config = 4;
|
||||
};
|
||||
}
|
||||
// Add here more cells
|
||||
);
|
||||
|
||||
nr_cell_list =
|
||||
(
|
||||
// no NR cells
|
||||
);
|
@@ -1,176 +0,0 @@
|
||||
sib1 =
|
||||
{
|
||||
intra_freq_reselection = "Allowed";
|
||||
q_rx_lev_min = -65;
|
||||
//p_max = 3;
|
||||
cell_barred = "NotBarred"
|
||||
si_window_length = 20;
|
||||
sched_info =
|
||||
(
|
||||
{
|
||||
si_periodicity = 16;
|
||||
|
||||
// comma-separated array of SIB-indexes (from 3 to 13), leave empty or commented to just scheduler sib2
|
||||
si_mapping_info = [ 3 ];
|
||||
}
|
||||
);
|
||||
system_info_value_tag = 0;
|
||||
};
|
||||
|
||||
sib2 =
|
||||
{
|
||||
rr_config_common_sib =
|
||||
{
|
||||
rach_cnfg =
|
||||
{
|
||||
num_ra_preambles = 52;
|
||||
preamble_init_rx_target_pwr = -104;
|
||||
pwr_ramping_step = 6; // in dB
|
||||
preamble_trans_max = 10;
|
||||
ra_resp_win_size = 10; // in ms
|
||||
mac_con_res_timer = 64; // in ms
|
||||
max_harq_msg3_tx = 4;
|
||||
};
|
||||
bcch_cnfg =
|
||||
{
|
||||
modification_period_coeff = 16; // in ms
|
||||
};
|
||||
pcch_cnfg =
|
||||
{
|
||||
default_paging_cycle = 32; // in rf
|
||||
nB = "1";
|
||||
};
|
||||
prach_cnfg =
|
||||
{
|
||||
root_sequence_index = 128;
|
||||
prach_cnfg_info =
|
||||
{
|
||||
high_speed_flag = false;
|
||||
prach_config_index = 3;
|
||||
prach_freq_offset = 4;
|
||||
zero_correlation_zone_config = 5;
|
||||
};
|
||||
};
|
||||
pdsch_cnfg =
|
||||
{
|
||||
/* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1
|
||||
*/
|
||||
p_b = 1;
|
||||
rs_power = 0;
|
||||
};
|
||||
pusch_cnfg =
|
||||
{
|
||||
n_sb = 1;
|
||||
hopping_mode = "inter-subframe";
|
||||
pusch_hopping_offset = 2;
|
||||
enable_64_qam = false; // 64QAM PUSCH is not currently enabled
|
||||
ul_rs =
|
||||
{
|
||||
cyclic_shift = 0;
|
||||
group_assignment_pusch = 0;
|
||||
group_hopping_enabled = false;
|
||||
sequence_hopping_enabled = false;
|
||||
};
|
||||
};
|
||||
pucch_cnfg =
|
||||
{
|
||||
delta_pucch_shift = 1;
|
||||
n_rb_cqi = 1;
|
||||
n_cs_an = 0;
|
||||
n1_pucch_an = 12;
|
||||
};
|
||||
ul_pwr_ctrl =
|
||||
{
|
||||
p0_nominal_pusch = -85;
|
||||
alpha = 0.7;
|
||||
p0_nominal_pucch = -107;
|
||||
delta_flist_pucch =
|
||||
{
|
||||
format_1 = 0;
|
||||
format_1b = 3;
|
||||
format_2 = 1;
|
||||
format_2a = 2;
|
||||
format_2b = 2;
|
||||
};
|
||||
delta_preamble_msg3 = 6;
|
||||
};
|
||||
ul_cp_length = "len1";
|
||||
};
|
||||
|
||||
ue_timers_and_constants =
|
||||
{
|
||||
t300 = 2000; // in ms
|
||||
t301 = 100; // in ms
|
||||
t310 = 200; // in ms
|
||||
n310 = 1;
|
||||
t311 = 10000; // in ms
|
||||
n311 = 1;
|
||||
};
|
||||
|
||||
freqInfo =
|
||||
{
|
||||
ul_carrier_freq_present = true;
|
||||
ul_bw_present = true;
|
||||
additional_spectrum_emission = 1;
|
||||
};
|
||||
|
||||
time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc.
|
||||
};
|
||||
|
||||
sib3 =
|
||||
{
|
||||
cell_reselection_common = {
|
||||
q_hyst = 2; // in dB
|
||||
},
|
||||
cell_reselection_serving = {
|
||||
s_non_intra_search = 3,
|
||||
thresh_serving_low = 2,
|
||||
cell_resel_prio = 6
|
||||
},
|
||||
intra_freq_reselection = {
|
||||
q_rx_lev_min = -61,
|
||||
p_max = 23,
|
||||
s_intra_search = 5,
|
||||
presence_ant_port_1 = true,
|
||||
neigh_cell_cnfg = 1,
|
||||
t_resel_eutra = 1
|
||||
}
|
||||
};
|
||||
|
||||
#####################################################################
|
||||
# sib7 configuration options (See TS 36.331)
|
||||
# Contains GERAN neighbor information for CSFB and inter-rat handover.
|
||||
# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted
|
||||
#
|
||||
# t_resel_geran: Cell reselection timer (seconds)
|
||||
# carrier_freqs_info_list: A list of carrier frequency groups.
|
||||
# cell_resel_prio: Absolute priority of the carrier frequency group
|
||||
# ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring
|
||||
# q_rx_lev_min: Minimum receive level in gsm cell, ([field_val] * 2) - 115 = [level in dBm]
|
||||
# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency
|
||||
# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency
|
||||
# start_arfcn: Initial search ARFCN value
|
||||
# band_ind: One of "dcs1800" or "pcs1900" Disambiguates ARFCNs in these bands, has no meaning for other ARFCNs.
|
||||
# explicit_list_of_arfcns: List of ARFCN numbers in the group
|
||||
#
|
||||
#####################################################################
|
||||
sib7 =
|
||||
{
|
||||
t_resel_geran = 1;
|
||||
carrier_freqs_info_list =
|
||||
(
|
||||
{
|
||||
cell_resel_prio = 0;
|
||||
ncc_permitted = 255;
|
||||
q_rx_lev_min = 0;
|
||||
thresh_x_high = 2;
|
||||
thresh_x_low = 2;
|
||||
|
||||
start_arfcn = 871;
|
||||
band_ind = "dcs1800";
|
||||
explicit_list_of_arfcns = (
|
||||
871
|
||||
);
|
||||
}
|
||||
);
|
||||
};
|
@@ -1,386 +0,0 @@
|
||||
#####################################################################
|
||||
# srsUE configuration file
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
# RF configuration
|
||||
#
|
||||
# dl_earfcn: Downlink EARFCN code.
|
||||
# freq_offset: Uplink and Downlink optional frequency offset (in Hz)
|
||||
# tx_gain: Transmit gain (dB).
|
||||
# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
|
||||
#
|
||||
# Optional parameters:
|
||||
# dl_freq: Override DL frequency corresponding to dl_earfcn
|
||||
# ul_freq: Override UL frequency corresponding to dl_earfcn
|
||||
# nof_carriers: Number of carriers
|
||||
# nof_antennas: Number of antennas per carrier (all carriers have the same number of antennas)
|
||||
# device_name: Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"
|
||||
# device_args: Arguments for the device driver. Options are "auto" or any string.
|
||||
# Default for UHD: "recv_frame_size=9232,send_frame_size=9232"
|
||||
# Default for bladeRF: ""
|
||||
# device_args_2: Arguments for the RF device driver 2.
|
||||
# device_args_3: Arguments for the RF device driver 3.
|
||||
# time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay
|
||||
# from antenna to timestamp insertion.
|
||||
# Default "auto". B210 USRP: 100 samples, bladeRF: 27.
|
||||
# continuous_tx: Transmit samples continuously to the radio or on bursts (auto/yes/no).
|
||||
# Default is auto (yes for UHD, no for rest)
|
||||
#####################################################################
|
||||
[rf]
|
||||
dl_earfcn = 3350
|
||||
freq_offset = 0
|
||||
tx_gain = 80
|
||||
#rx_gain = 40
|
||||
|
||||
#nof_carriers = 1
|
||||
#nof_antennas = 1
|
||||
|
||||
# For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings:
|
||||
# USRP B210: num_recv_frames=64,num_send_frames=64
|
||||
|
||||
# For best performance when BW<5 MHz (25 PRB), use the following device_args settings:
|
||||
# USRP B210: send_frame_size=512,recv_frame_size=512
|
||||
|
||||
#device_args = auto
|
||||
#time_adv_nsamples = auto
|
||||
#continuous_tx = auto
|
||||
|
||||
# Example for ZMQ-based operation with TCP transport for I/Q samples
|
||||
#device_name = zmq
|
||||
#device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6
|
||||
device_name = zmq
|
||||
device_args = tx_port=tcp://*:2001,rx_port=tcp://${ENB_ADDRESS}:2000,id=ue,base_srate=23.04e6
|
||||
|
||||
#####################################################################
|
||||
# Packet capture configuration
|
||||
#
|
||||
# Packet capture is supported at both MAC and NAS layers.
|
||||
# MAC-layer packets are captured to file in the compact format
|
||||
# decoded by the Wireshark mac-lte-framed dissector.
|
||||
# To use this dissector, edit the preferences for DLT_USER to
|
||||
# add an entry with DLT=147, Payload Protocol=mac-lte-framed.
|
||||
# For more information see: https://wiki.wireshark.org/MAC-LTE
|
||||
# NAS-layer packets are dissected with DLT=148, and
|
||||
# Payload Protocol = nas-eps.
|
||||
#
|
||||
# enable: Enable MAC layer packet captures (true/false)
|
||||
# filename: File path to use for MAC packet captures
|
||||
# nas_enable: Enable NAS layer packet captures (true/false)
|
||||
# nas_filename: File path to use for NAS packet captures
|
||||
#####################################################################
|
||||
[pcap]
|
||||
enable = false
|
||||
filename = /tmp/ue.pcap
|
||||
nas_enable = false
|
||||
nas_filename = /tmp/nas.pcap
|
||||
|
||||
#####################################################################
|
||||
# Log configuration
|
||||
#
|
||||
# Log levels can be set for individual layers. "all_level" sets log
|
||||
# level for all layers unless otherwise configured.
|
||||
# Format: e.g. phy_level = info
|
||||
#
|
||||
# In the same way, packet hex dumps can be limited for each level.
|
||||
# "all_hex_limit" sets the hex limit for all layers unless otherwise
|
||||
# configured.
|
||||
# Format: e.g. phy_hex_limit = 32
|
||||
#
|
||||
# Logging layers: rf, phy, mac, rlc, pdcp, rrc, nas, gw, usim, stack, all
|
||||
# Logging levels: debug, info, warning, error, none
|
||||
#
|
||||
# filename: File path to use for log output. Can be set to stdout
|
||||
# to print logs to standard output
|
||||
# file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created.
|
||||
# If set to negative, a single log file will be created.
|
||||
#####################################################################
|
||||
[log]
|
||||
all_level = warning
|
||||
phy_lib_level = none
|
||||
all_hex_limit = 32
|
||||
filename = /tmp/ue.log
|
||||
file_max_size = -1
|
||||
|
||||
#####################################################################
|
||||
# USIM configuration
|
||||
#
|
||||
# mode: USIM mode (soft/pcsc)
|
||||
# algo: Authentication algorithm (xor/milenage)
|
||||
# op/opc: 128-bit Operator Variant Algorithm Configuration Field (hex)
|
||||
# - Specify either op or opc (only used in milenage)
|
||||
# k: 128-bit subscriber key (hex)
|
||||
# imsi: 15 digit International Mobile Subscriber Identity
|
||||
# imei: 15 digit International Mobile Station Equipment Identity
|
||||
# pin: PIN in case real SIM card is used
|
||||
# reader: Specify card reader by it's name as listed by 'pcsc_scan'. If empty, try all available readers.
|
||||
#####################################################################
|
||||
[usim]
|
||||
mode = soft
|
||||
algo = xor
|
||||
opc = ${OPC}
|
||||
k = ${KEY}
|
||||
imsi = ${MCC}${MNC}${MSISDN}
|
||||
imei = 353490069873319
|
||||
#reader =
|
||||
#pin = 1234
|
||||
|
||||
#####################################################################
|
||||
# RRC configuration
|
||||
#
|
||||
# ue_category: Sets UE category (range 1-5). Default: 4
|
||||
# release: UE Release (8 to 10)
|
||||
# feature_group: Hex value of the featureGroupIndicators field in the
|
||||
# UECapabilityInformation message. Default 0xe6041000
|
||||
# mbms_service_id: MBMS service id for autostarting MBMS reception
|
||||
# (default -1 means disabled)
|
||||
# mbms_service_port: Port of the MBMS service
|
||||
#####################################################################
|
||||
[rrc]
|
||||
#ue_category = 4
|
||||
#release = 8
|
||||
#feature_group = 0xe6041000
|
||||
#mbms_service_id = -1
|
||||
#mbms_service_port = 4321
|
||||
|
||||
#####################################################################
|
||||
# NAS configuration
|
||||
#
|
||||
# apn: Set Access Point Name (APN)
|
||||
# apn_protocol: Set APN protocol (IPv4, IPv6 or IPv4v6.)
|
||||
# user: Username for CHAP authentication
|
||||
# pass: Password for CHAP authentication
|
||||
# force_imsi_attach: Whether to always perform an IMSI attach
|
||||
# eia: List of integrity algorithms included in UE capabilities
|
||||
# Supported: 1 - Snow3G, 2 - AES
|
||||
# eea: List of ciphering algorithms included in UE capabilities
|
||||
# Supported: 0 - NULL, 1 - Snow3G, 2 - AES
|
||||
#####################################################################
|
||||
[nas]
|
||||
#apn = internetinternet
|
||||
#apn_protocol = ipv4
|
||||
#user = srsuser
|
||||
#pass = srspass
|
||||
#force_imsi_attach = false
|
||||
#eia = 1,2
|
||||
#eea = 0,1,2
|
||||
|
||||
#####################################################################
|
||||
# GW configuration
|
||||
#
|
||||
# netns: Network namespace to create TUN device. Default: empty
|
||||
# ip_devname: Name of the tun_srsue device. Default: tun_srsue
|
||||
# ip_netmask: Netmask of the tun_srsue device. Default: 255.255.255.0
|
||||
#####################################################################
|
||||
[gw]
|
||||
#netns =
|
||||
#ip_devname = tun_srsue
|
||||
#ip_netmask = 255.255.255.0
|
||||
|
||||
#####################################################################
|
||||
# GUI configuration
|
||||
#
|
||||
# Simple GUI displaying PDSCH constellation and channel freq response.
|
||||
# (Requires building with srsGUI)
|
||||
# enable: Enable the graphical interface (true/false)
|
||||
#####################################################################
|
||||
[gui]
|
||||
enable = false
|
||||
|
||||
#####################################################################
|
||||
# Channel emulator options:
|
||||
# enable: Enable/Disable internal Downlink/Uplink channel emulator
|
||||
#
|
||||
# -- AWGN Generator
|
||||
# awgn.enable: Enable/disable AWGN generator
|
||||
# awgn.snr: SNR in dB
|
||||
# awgn.signal_power: Received signal power in decibels full scale (dBfs)
|
||||
#
|
||||
# -- Fading emulator
|
||||
# fading.enable: Enable/disable fading simulator
|
||||
# fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc)
|
||||
#
|
||||
# -- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2
|
||||
# Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period
|
||||
# delay.enable: Enable/disable delay simulator
|
||||
# delay.period_s: Delay period in seconds.
|
||||
# delay.init_time_s: Delay initial time in seconds.
|
||||
# delay.maximum_us: Maximum delay in microseconds
|
||||
# delay.minumum_us: Minimum delay in microseconds
|
||||
#
|
||||
# -- Radio-Link Failure (RLF) Emulator
|
||||
# rlf.enable: Enable/disable RLF simulator
|
||||
# rlf.t_on_ms: Time for On state of the channel (ms)
|
||||
# rlf.t_off_ms: Time for Off state of the channel (ms)
|
||||
#
|
||||
# -- High Speed Train Doppler model simulator
|
||||
# hst.enable: Enable/Disable HST simulator
|
||||
# hst.period_s: HST simulation period in seconds
|
||||
# hst.fd_hz: Doppler frequency in Hz
|
||||
# hst.init_time_s: Initial time in seconds
|
||||
#####################################################################
|
||||
[channel.dl]
|
||||
#enable = false
|
||||
|
||||
[channel.dl.awgn]
|
||||
#enable = false
|
||||
#snr = 30
|
||||
|
||||
[channel.dl.fading]
|
||||
#enable = false
|
||||
#model = none
|
||||
|
||||
[channel.dl.delay]
|
||||
#enable = false
|
||||
#period_s = 3600
|
||||
#init_time_s = 0
|
||||
#maximum_us = 100
|
||||
#minimum_us = 10
|
||||
|
||||
[channel.dl.rlf]
|
||||
#enable = false
|
||||
#t_on_ms = 10000
|
||||
#t_off_ms = 2000
|
||||
|
||||
[channel.dl.hst]
|
||||
#enable = false
|
||||
#period_s = 7.2
|
||||
#fd_hz = 750.0
|
||||
#init_time_s = 0.0
|
||||
|
||||
[channel.ul]
|
||||
#enable = false
|
||||
|
||||
[channel.ul.awgn]
|
||||
#enable = false
|
||||
#n0 = -30
|
||||
|
||||
[channel.ul.fading]
|
||||
#enable = false
|
||||
#model = none
|
||||
|
||||
[channel.ul.delay]
|
||||
#enable = false
|
||||
#period_s = 3600
|
||||
#init_time_s = 0
|
||||
#maximum_us = 100
|
||||
#minimum_us = 10
|
||||
|
||||
[channel.ul.rlf]
|
||||
#enable = false
|
||||
#t_on_ms = 10000
|
||||
#t_off_ms = 2000
|
||||
|
||||
[channel.ul.hst]
|
||||
#enable = false
|
||||
#period_s = 7.2
|
||||
#fd_hz = -750.0
|
||||
#init_time_s = 0.0
|
||||
|
||||
#####################################################################
|
||||
# PHY configuration options
|
||||
#
|
||||
# rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
|
||||
# prach_gain: PRACH gain (dB). If defined, forces a gain for the tranmsission of PRACH only.,
|
||||
# Default is to use tx_gain in [rf] section.
|
||||
# cqi_max: Upper bound on the maximum CQI to be reported. Default 15.
|
||||
# cqi_fixed: Fixes the reported CQI to a constant value. Default disabled.
|
||||
# snr_ema_coeff: Sets the SNR exponential moving average coefficient (Default 0.1)
|
||||
# snr_estim_alg: Sets the noise estimation algorithm. (Default refs)
|
||||
# Options: pss: use difference between received and known pss signal,
|
||||
# refs: use difference between noise references and noiseless (after filtering)
|
||||
# empty: use empty subcarriers in the boarder of pss/sss signal
|
||||
# pdsch_max_its: Maximum number of turbo decoder iterations (Default 4)
|
||||
# pdsch_meas_evm: Measure PDSCH EVM, increases CPU load (default false)
|
||||
# nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3)
|
||||
# equalizer_mode: Selects equalizer mode. Valid modes are: "mmse", "zf" or any
|
||||
# non-negative real number to indicate a regularized zf coefficient.
|
||||
# Default is MMSE.
|
||||
# correct_sync_error: Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage,
|
||||
# improves PDSCH decoding in high SFO and high speed UE scenarios.
|
||||
# sfo_ema: EMA coefficient to average sample offsets used to compute SFO
|
||||
# sfo_correct_period: Period in ms to correct sample time to adjust for SFO
|
||||
# sss_algorithm: Selects the SSS estimation algorithm. Can choose between
|
||||
# {full, partial, diff}.
|
||||
# estimator_fil_auto: The channel estimator smooths the channel estimate with an adaptative filter.
|
||||
# estimator_fil_stddev: Sets the channel estimator smooth gaussian filter standard deviation.
|
||||
# estimator_fil_order: Sets the channel estimator smooth gaussian filter order (even values perform better).
|
||||
# The taps are [w, 1-2w, w]
|
||||
#
|
||||
# snr_to_cqi_offset: Sets an offset in the SNR to CQI table. This is used to adjust the reported CQI.
|
||||
#
|
||||
# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
|
||||
#
|
||||
# pdsch_csi_enabled: Stores the Channel State Information and uses it for weightening the softbits. It is only
|
||||
# used in TM1. It is True by default.
|
||||
#
|
||||
# pdsch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
|
||||
# force_ul_amplitude: Forces the peak amplitude in the PUCCH, PUSCH and SRS (set 0.0 to 1.0, set to 0 or negative for disabling)
|
||||
#
|
||||
# in_sync_rsrp_dbm_th: RSRP threshold (in dBm) above which the UE considers to be in-sync
|
||||
# in_sync_snr_db_th: SNR threshold (in dB) above which the UE considers to be in-sync
|
||||
# nof_in_sync_events: Number of PHY in-sync events before sending an in-sync event to RRC
|
||||
# nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC
|
||||
#
|
||||
#####################################################################
|
||||
[phy]
|
||||
#rx_gain_offset = 62
|
||||
#prach_gain = 30
|
||||
#cqi_max = 15
|
||||
#cqi_fixed = 10
|
||||
#snr_ema_coeff = 0.1
|
||||
#snr_estim_alg = refs
|
||||
#pdsch_max_its = 8 # These are half iterations
|
||||
#pdsch_meas_evm = false
|
||||
#nof_phy_threads = 3
|
||||
#equalizer_mode = mmse
|
||||
#correct_sync_error = false
|
||||
#sfo_ema = 0.1
|
||||
#sfo_correct_period = 10
|
||||
#sss_algorithm = full
|
||||
#estimator_fil_auto = false
|
||||
#estimator_fil_stddev = 1.0
|
||||
#estimator_fil_order = 4
|
||||
#snr_to_cqi_offset = 0.0
|
||||
#interpolate_subframe_enabled = false
|
||||
#pdsch_csi_enabled = true
|
||||
#pdsch_8bit_decoder = false
|
||||
#force_ul_amplitude = 0
|
||||
|
||||
#in_sync_rsrp_dbm_th = -130.0
|
||||
#in_sync_snr_db_th = 3.0
|
||||
#nof_in_sync_events = 10
|
||||
#nof_out_of_sync_events = 20
|
||||
|
||||
#####################################################################
|
||||
# Simulation configuration options
|
||||
#
|
||||
# The UE simulation supports turning on and off airplane mode in the UE.
|
||||
# The actions are carried periodically until the UE is stopped.
|
||||
#
|
||||
# airplane_t_on_ms: Time to leave airplane mode turned on (in ms)
|
||||
#
|
||||
# airplane_t_off_ms: Time to leave airplane mode turned off (in ms)
|
||||
#
|
||||
#####################################################################
|
||||
[sim]
|
||||
#airplane_t_on_ms = -1
|
||||
#airplane_t_off_ms = -1
|
||||
|
||||
#####################################################################
|
||||
# General configuration options
|
||||
#
|
||||
# metrics_csv_enable: Write UE metrics to CSV file.
|
||||
#
|
||||
# metrics_period_secs: Sets the period at which metrics are requested from the UE.
|
||||
#
|
||||
# metrics_csv_filename: File path to use for CSV metrics.
|
||||
#
|
||||
# have_tti_time_stats: Calculate TTI execution statistics using system clock
|
||||
#
|
||||
#####################################################################
|
||||
[general]
|
||||
#metrics_csv_enable = false
|
||||
#metrics_period_secs = 1
|
||||
#metrics_csv_filename = /tmp/ue_metrics.csv
|
||||
#have_tti_time_stats = true
|
@@ -1,20 +0,0 @@
|
||||
#
|
||||
# .csv to store UE's information in HSS
|
||||
# Kept in the following format: "Name,Auth,IMSI,Key,OP_Type,OP,AMF,SQN,QCI,IP_alloc"
|
||||
#
|
||||
# Name: Human readable name to help distinguish UE's. Ignored by the HSS
|
||||
# IMSI: UE's IMSI value
|
||||
# Auth: Authentication algorithm used by the UE. Valid algorithms are XOR
|
||||
# (xor) and MILENAGE (mil)
|
||||
# Key: UE's key, where other keys are derived from. Stored in hexadecimal
|
||||
# OP_Type: Operator's code type, either OP or OPc
|
||||
# OP/OPc: Operator Code/Cyphered Operator Code, stored in hexadecimal
|
||||
# AMF: Authentication management field, stored in hexadecimal
|
||||
# SQN: UE's Sequence number for freshness of the authentication
|
||||
# QCI: QoS Class Identifier for the UE's default bearer.
|
||||
# IP_alloc: IP allocation stratagy for the SPGW.
|
||||
# With 'dynamic' the SPGW will automatically allocate IPs
|
||||
# With a valid IPv4 (e.g. '172.16.0.2') the UE will have a statically assigned IP.
|
||||
#
|
||||
# Note: Lines starting by '#' are ignored and will be overwritten
|
||||
ue1,mil,901700000039226,491BB1C6E1179AED538028AE7AD525B3,opc,3B7FB099B3A6D16873B33F023B1679E9,8000,000000001234,7,dynamic
|
Can't render this file because it contains an unexpected character in line 3 and column 33.
|
@@ -1,17 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
default_branch=main
|
||||
images_dir=images
|
||||
if [ -z "$IMAGE_LIST" ]; then
|
||||
LIST_CHANGED=`git diff --name-only main -- images | cut -f1-2 -d'/' | uniq`
|
||||
else
|
||||
LIST_CHANGED=$IMAGE_LIST
|
||||
fi
|
||||
|
||||
list_changed=`git diff --name-only $default_branch -- $images_dir | cut -f1-2 -d'/' | uniq`
|
||||
|
||||
for image in $list_changed; do
|
||||
for image in $LIST_CHANGED; do
|
||||
pushd $image
|
||||
source image_info.sh
|
||||
IMAGE_NAME=${image#"images/"}
|
||||
if [ -z "$PLATFORMS" ]; then
|
||||
docker build -t $image:$IMAGE_TAG --build-arg version=$IMAGE_TAG .
|
||||
docker build -t $IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG .
|
||||
else
|
||||
docker buildx build -t $image:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} .
|
||||
docker buildx build -t $IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} .
|
||||
fi
|
||||
popd
|
||||
done
|
||||
|
21
scripts/push.sh
Executable file
21
scripts/push.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
REGISTRY=docker.io/openverso
|
||||
|
||||
if [ -z "$IMAGE_LIST" ]; then
|
||||
LIST_CHANGED=`git diff --name-only main -- images | cut -f1-2 -d'/' | uniq`
|
||||
else
|
||||
LIST_CHANGED=$IMAGE_LIST
|
||||
fi
|
||||
|
||||
for image in $LIST_CHANGED; do
|
||||
pushd $image
|
||||
source image_info.sh
|
||||
IMAGE_NAME=${image#"images/"}
|
||||
if [ -z "$PLATFORMS" ]; then
|
||||
docker push $REGISTRY/$IMAGE_NAME:$IMAGE_TAG
|
||||
else
|
||||
docker buildx build -t $REGISTRY/$IMAGE_NAME:$IMAGE_TAG --build-arg version=$IMAGE_TAG --platform ${PLATFORMS} . --push
|
||||
fi
|
||||
popd
|
||||
done
|
Reference in New Issue
Block a user