open5gs/webui/server/models/subscriber.js

99 lines
2.1 KiB
JavaScript
Raw Normal View History

2017-06-16 14:49:52 +00:00
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
require('mongoose-long')(mongoose);
2017-06-16 14:49:52 +00:00
const Subscriber = new Schema({
2017-06-17 02:35:12 +00:00
imsi: { $type: String, unique: true, required: true },
2017-06-16 14:49:52 +00:00
2017-06-25 05:45:49 +00:00
security: {
k: String,
op: String,
opc: String,
2017-06-25 05:45:49 +00:00
amf: String,
rand: String,
sqn: Schema.Types.Long
2017-06-25 05:45:49 +00:00
},
access_restriction_data: {
$type: Number,
default: 32 // Handover to Non-3GPP Access Not Allowed
},
subscriber_status: {
$type: Number,
default: 0 // Service Granted
},
network_access_mode: {
$type: Number,
default: 2 // Only Packet
},
2017-06-16 14:49:52 +00:00
2017-07-21 16:01:54 +00:00
subscribed_rau_tau_timer: {
$type: Number,
default: 12 // minites
},
ambr: {
downlink: Schema.Types.Long,
uplink: Schema.Types.Long
2017-06-16 14:49:52 +00:00
},
pdn: [{
2017-06-25 05:45:49 +00:00
apn: { $type: String, required: true },
type: {
$type: Number, default: 2 // IPv4, IPv6 and dualstack IPv4v6
2017-06-25 05:45:49 +00:00
},
qos: {
qci: Number,
arp: {
priority_level: Number,
pre_emption_capability: {
$type: Number, default: 1 // Capability Disabled
2017-06-25 05:45:49 +00:00
},
pre_emption_vulnerability: {
$type : Number, default: 0 // Vulnerability Disabled
2017-06-25 05:45:49 +00:00
}
}
},
ambr: {
downlink: Schema.Types.Long,
uplink: Schema.Types.Long
},
2019-11-17 08:43:36 +00:00
ue: {
addr: String,
addr6: String
},
pgw: {
2017-12-15 04:47:57 +00:00
addr: String,
addr6: String
},
pcc_rule: [{
flow: [{
2017-08-23 02:47:12 +00:00
direction: Number,
description: String
}],
qos: {
qci: Number,
arp: {
priority_level: Number,
pre_emption_capability: {
$type: Number, default: 1 // Capability Disabled
},
pre_emption_vulnerability: {
$type : Number, default: 0 // Vulnerability Disabled
}
},
mbr: {
downlink: Schema.Types.Long,
uplink: Schema.Types.Long
},
gbr: {
downlink: Schema.Types.Long,
uplink: Schema.Types.Long
},
},
}]
2017-06-25 05:45:49 +00:00
}]
2017-06-17 02:35:12 +00:00
}, { typeKey: '$type' });
2017-06-16 14:49:52 +00:00
2017-06-25 05:45:49 +00:00
module.exports = mongoose.model('Subscriber', Subscriber);