nickvsnetworking / pyhss Goto Github PK
View Code? Open in Web Editor NEWPython HSS / Diameter Server
License: GNU Affero General Public License v3.0
Python HSS / Diameter Server
License: GNU Affero General Public License v3.0
requirements.txt is missing systemd mysqlclient
We get the remote peer based on this:
try: #Check if we have a record-route set as that's where we'll need to send the response
remote_peer = self.get_avp_data(avps, 282)[-1] #Get first record-route header
remote_peer = binascii.unhexlify(remote_peer).decode('utf-8') #Format it
except: #If we don't have a record-route set, we'll send the response to the OriginHost
remote_peer = OriginHost
self.logTool.log(service='HSS', level='debug', message="[diameter.py] [Answer_16777238_272] [CCA] Remote Peer is " + str(remote_peer), redisClient=self.redisMessaging)
remote_peer = remote_peer + ";" + str(self.config['hss']['OriginHost'])
If the peer is coming from a DRA, this will just get the Origin-Host, not the DRA connection,
We'll need to pass the source IP & port through, and then run that through Redis' ActiveDiameterPeers
to find the peer.
when connected, server will send DWR to keep alive, but client cant answer a DWA, so the server stop the connect,how can i solved this problem?
Hi nick,
thanks for your great hss implementation. It finally made my life way much easier by running a small python application instead of a huge java based HSS...
I'm wondering which license is this code released under. Having it on GitHub probably implies some sort of open source license but there is nothing explicitly written..
Could you clarify this?
Cheers
Bjoern
Malformed AVP Host-IP-Address when PYHSS when using ipv6 or dual stack bind_ip: ["::"]
PyHSS 1.01
invalid TFT sent:
AVP: Flow-Description(507) l=74 f=VM- vnd=TGPP val=permit out 17 from /32 19680-19681 to 10.46.1.1/32 49120-49121
looks like PyHSS is not returning the value of {sdpDownlinkIpv4}
also, the only log file created or updated in /var/log is pyhss_diameter.log
Only one APN is stored in serving_apn if there are multiple bearers.
Correct behaviour should be each APN present on the UE should be stored into serving_apn table.
Flags should be 0x00 not 0x40, this is causing issues during CEA/CER exchange with some peers.
In order to get to the error can't open file 'hss.py'
, I needed to solve a catch-22 situation where I needed a static ip address before the docker build so I made a custom docker network for pyhss so I can preset the docker internal ip address for pyhss:
docker network create --subnet 172.31.0.1/16 --internal hss
and when I run docker network inspect $(docker network ls | awk '$3 == "bridge" { print $1}') | jq -r '.[] | .Name + " " + .IPAM.Config[0].Subnet' -
I can see the new network:
...
hss 172.31.0.1/16
...
my docker-compose.yaml:
version: '3'
networks:
hss:
ipam:
config:
- subnet: "17.31.0.0/16"
services:
pyhss:
build: .
image: pyhss
container_name: pyhss
env_file:
- .env
environment:
- COMPONENT_NAME=hss-1
volumes:
- ./pyhss:/mnt/hss
expose:
- "3868/tcp"
- "3868/sctp"
ports:
- "3868:3868/tcp"
- "3868:3868/sctp"
networks:
hss:
ipv4_address: "17.31.0.2"
After doing this, I managed to get the Dockerfile building, however I see another error:
pyhss | /usr/bin/python3: can't open file 'hss.py': [Errno 2] No such file or directory
pyhss exited with code 2
This appears to be a bug. Where is hss.py
?
Hi
Thanks for your great repo!
I was wondering if it is possible to use OP instead of OP for AUC authentication?
Thanks
Best regards
Hi,
Is there a way to backup informations that added to pyhss?
Each time i install pyhss and needs to add a subscriber, i need to do all the steps manually using the web interface! is there any way to backup and then upload the file to automatically add those users?
or any automated way instead of some hard manually adding subs to the program?
Thanks
Best regards
Doesn't seem to update.
Changing transport to "SCTP", just does nothing. I just try with a single IP (SCTP non-multihoming). It seems there are not many things for this SCTP case in the documentation. Can you please help?
root@backup-server:~/pyhss-master/services# python3 diameterService.py
root@backup-server:~/pyhss-master/services#
In Answer_16777236_265 add:
#Add Supported Features AVP
avp += self.generate_vendor_avp(628, 80, 10415, "0000010a4000000c000028af0000027580000010000028af000000010000027680000010000028af00000001")
I have been trying to start hssService.py
but its giving me the following error
[10/20/2023 06:52:29] [INFO]
###### ## ## ##### #####
## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ##
###### ## ## ####### ##### #####
## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ##
## ##### ## ## ##### #####
##
####
HSS Service
[10/20/2023 06:52:29] [INFO] Reading IMEI TAC database CSV from /etc/pyhss/tac_database_Nov2022.csv
[10/20/2023 06:52:29] [ERROR] Failed to read CSV file of IMEI TAC database
2023-10-20 06:52:29,657 INFO sqlalchemy.engine.Engine SELECT DATABASE()
2023-10-20 06:52:29,658 INFO sqlalchemy.engine.Engine [raw sql] ()
2023-10-20 06:52:29,660 INFO sqlalchemy.engine.Engine SELECT @@sql_mode
2023-10-20 06:52:29,660 INFO sqlalchemy.engine.Engine [raw sql] ()
2023-10-20 06:52:29,664 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names
2023-10-20 06:52:29,665 INFO sqlalchemy.engine.Engine [raw sql] ()
2023-10-20 06:52:29,667 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2023-10-20 06:52:29,667 INFO sqlalchemy.engine.Engine SHOW FULL TABLES FROM `hss2`
2023-10-20 06:52:29,667 INFO sqlalchemy.engine.Engine [raw sql] ()
2023-10-20 06:52:29,672 INFO sqlalchemy.engine.Engine ROLLBACK
2023-10-20 06:52:29,673 INFO sqlalchemy.engine.Engine BEGIN (implicit)
2023-10-20 06:52:29,677 INFO sqlalchemy.engine.Engine
CREATE TABLE operation_log (
id INTEGER NOT NULL AUTO_INCREMENT,
item_id INTEGER NOT NULL,
operation_id VARCHAR(36) NOT NULL,
operation VARCHAR(10),
changes TEXT,
last_modified VARCHAR(100),
timestamp DATETIME,
table_name VARCHAR(255),
apn_id INTEGER,
subscriber_routing_id INTEGER,
serving_apn_id INTEGER,
auc_id INTEGER,
subscriber_id INTEGER,
ims_subscriber_id INTEGER,
charging_rule_id INTEGER,
tft_id INTEGER,
eir_id INTEGER,
imsi_imei_history_id INTEGER,
subscriber_attributes_id INTEGER,
PRIMARY KEY (id),
FOREIGN KEY(apn_id) REFERENCES apn (apn_id),
FOREIGN KEY(subscriber_routing_id) REFERENCES subscriber_routing (subscriber_routing_id),
FOREIGN KEY(serving_apn_id) REFERENCES serving_apn (serving_apn_id),
FOREIGN KEY(auc_id) REFERENCES auc (auc_id),
FOREIGN KEY(subscriber_id) REFERENCES subscriber (subscriber_id),
FOREIGN KEY(ims_subscriber_id) REFERENCES ims_subscriber (ims_subscriber_id),
FOREIGN KEY(charging_rule_id) REFERENCES charging_rule (charging_rule_id),
FOREIGN KEY(tft_id) REFERENCES tft (tft_id),
FOREIGN KEY(eir_id) REFERENCES eir (eir_id),
FOREIGN KEY(imsi_imei_history_id) REFERENCES eir_history (imsi_imei_history_id),
FOREIGN KEY(subscriber_attributes_id) REFERENCES subscriber_attributes (subscriber_attributes_id)
)
2023-10-20 06:52:29,678 INFO sqlalchemy.engine.Engine [no key 0.00172s] ()
2023-10-20 06:52:29,682 INFO sqlalchemy.engine.Engine ROLLBACK
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/default.py", line 748, in do_execute
cursor.execute(statement, parameters)
File "/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 254, in query
_mysql.connection.query(self, query)
MySQLdb.OperationalError: (1824, "Failed to open the referenced table 'apn'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/etc/pyhss/services/hssService.py", line 100, in <module>
hssService = HssService()
File "/etc/pyhss/services/hssService.py", line 31, in __init__
self.diameterLibrary = Diameter(logTool=self.logTool, originHost=self.originHost, originRealm=self.originRealm, productName=self.productName, mcc=self.mcc, mnc=self.mnc)
File "/etc/pyhss/lib/diameter.py", line 39, in __init__
self.database = Database(logTool=logTool)
File "/etc/pyhss/lib/database.py", line 310, in __init__
Base.metadata.tables[table_name].create(bind=self.engine)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/schema.py", line 1149, in create
bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 3226, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 2430, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/visitors.py", line 670, in traverse_single
return meth(obj, **kw)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 963, in visit_table
)._invoke_with(self.connection)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 315, in _invoke_with
return bind.execute(self)
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1414, in execute
return meth(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/sql/ddl.py", line 181, in _execute_on_connection
return connection._execute_ddl(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1526, in _execute_ddl
ret = self._execute_context(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1842, in _execute_context
return self._exec_single_context(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 2326, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/default.py", line 748, in do_execute
cursor.execute(statement, parameters)
File "/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/usr/local/lib/python3.10/dist-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.10/dist-packages/MySQLdb/connections.py", line 254, in query
_mysql.connection.query(self, query)
sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1824, "Failed to open the referenced table 'apn'")
[SQL:
CREATE TABLE operation_log (
id INTEGER NOT NULL AUTO_INCREMENT,
item_id INTEGER NOT NULL,
operation_id VARCHAR(36) NOT NULL,
operation VARCHAR(10),
changes TEXT,
last_modified VARCHAR(100),
timestamp DATETIME,
table_name VARCHAR(255),
apn_id INTEGER,
subscriber_routing_id INTEGER,
serving_apn_id INTEGER,
auc_id INTEGER,
subscriber_id INTEGER,
ims_subscriber_id INTEGER,
charging_rule_id INTEGER,
tft_id INTEGER,
eir_id INTEGER,
imsi_imei_history_id INTEGER,
subscriber_attributes_id INTEGER,
PRIMARY KEY (id),
FOREIGN KEY(apn_id) REFERENCES apn (apn_id),
FOREIGN KEY(subscriber_routing_id) REFERENCES subscriber_routing (subscriber_routing_id),
FOREIGN KEY(serving_apn_id) REFERENCES serving_apn (serving_apn_id),
FOREIGN KEY(auc_id) REFERENCES auc (auc_id),
FOREIGN KEY(subscriber_id) REFERENCES subscriber (subscriber_id),
FOREIGN KEY(ims_subscriber_id) REFERENCES ims_subscriber (ims_subscriber_id),
FOREIGN KEY(charging_rule_id) REFERENCES charging_rule (charging_rule_id),
FOREIGN KEY(tft_id) REFERENCES tft (tft_id),
FOREIGN KEY(eir_id) REFERENCES eir (eir_id),
FOREIGN KEY(imsi_imei_history_id) REFERENCES eir_history (imsi_imei_history_id),
FOREIGN KEY(subscriber_attributes_id) REFERENCES subscriber_attributes (subscriber_attributes_id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
where i can find the file /etc/pyhss/tac_database_Nov2022.csv
and the database schema
to create tables?
Dear Nick,
Is there a way to replace the storage on Pyhss with distributed storage, for instance IPFS.
Thank you in advance for your answer.
Cheers.
Steps to reproduce:
Edit mysql config to lower timeouts:
interactive_timeout=90
wait_timeout=90
Start HSS or API service, wait 90 seconds, try a query, will get the below:
{
"result": "Failed",
"Reason": "(MySQLdb.OperationalError) (4031, 'The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.')\n[SQL: SELECT apn.apn_id AS apn_apn_id, apn.apn AS apn_apn, apn.ip_version AS apn_ip_version, apn.pgw_address AS apn_pgw_address, apn.sgw_address AS apn_sgw_address, apn.charging_characteristics AS apn_charging_characteristics, apn.apn_ambr_dl AS apn_apn_ambr_dl, apn.apn_ambr_ul AS apn_apn_ambr_ul, apn.qci AS apn_qci, apn.arp_priority AS apn_arp_priority, apn.arp_preemption_capability AS apn_arp_preemption_capability, apn.arp_preemption_vulnerability AS apn_arp_preemption_vulnerability, apn.charging_rule_list AS apn_charging_rule_list \nFROM apn \nWHERE apn.apn_id = %s]\n[parameters: ('1',)]\n(Background on this error at: https://sqlalche.me/e/14/e3q8)"
}
seems like ip_version is currently not used anywhere in the code https://github.com/nickvsnetworking/pyhss/search?q=ip_version
https://github.com/nickvsnetworking/pyhss/blob/master/diameter.py#L672 Line where the IP information is send to the client
To include the name of the HSS instance to make debug easier
Hi there, Nick
I've been using PyHSS for testing purposes recently, and it have helped me a lot! Thanks for sharing it publicly on Github.
I noticed the current repository doesn't have any explicit License, so I would like to ask if it is possible to clarify this point. It would be nice to know it for contributing and usage purposes.
Thanks!
Hi Nick,
I raised an issue to herlesupreeth for an authentication issue, but it might be related to pyHSS. Can you help me check it? Here the details:
After I successfully attach a srsue_zmq container and establish the connectivity towards kamailio's P-CSCF, registration fails with 403 Authentication Failed. I'm using a SIPp client and REGISTER message successfully reaches S-CSCF, but I can see that pyHSS's MAA specifies to use Algorithm MD5 instead of AKAv1-MD5. I have tried to check how to change the algorithm in pyHSS but haven't found where exactly. I also tried to bypass and force the algorithm on scscf.cfg file but 401 is always generated with Algorithm MD5
Besides the default configs in your repo, here are the subscriber provisioning data on pyHSS:
ims_subscriber
{
"msisdn": "9076543210",
"imsi": "001011234567895",
"sh_profile": "string",
"scscf_timestamp": null,
"scscf_realm": "ims.mnc001.mcc001.3gppnetwork.org",
"last_modified": "2023-11-10T00:55:11Z",
"msisdn_list": "[9076543210]",
"ims_subscriber_id": 1,
"ifc_path": "default_ifc.xml",
"scscf": "sip:scscf.ims.mnc001.mcc001.3gppnetwork.org:6060",
"scscf_peer": "scscf.ims.mnc001.mcc001.3gppnetwork.org"
}
auc
{
"batch_name": null,
"puk2": null,
"misc4": null,
"auc_id": 1,
"sim_vendor": null,
"last_modified": "2023-11-15T23:27:11Z",
"esim": false,
"lpa": null,
"amf": "8000",
"pin1": null,
"sqn": 1072,
"pin2": null,
"misc1": null,
"iccid": null,
"puk1": null,
"misc2": null,
"imsi": "001011234567895",
"misc3": null
}
subscriber
{
"enabled": true,
"subscriber_id": 1,
"default_apn": 2,
"apn_list": "1, 2",
"ue_ambr_dl": 0,
"nam": 0,
"serving_mme": null,
"serving_mme_realm": null,
"last_modified": "2023-11-14T17:44:32Z",
"imsi": "001011234567895",
"auc_id": 1,
"msisdn": "9076543210",
"ue_ambr_ul": 0,
"subscribed_rau_tau_timer": 300,
"serving_mme_timestamp": null,
"serving_mme_peer": null
}
scscf.cfg
#Select Authorization Algorhithm:
#!define REG_AUTH_DEFAULT_ALG "AKAv1-MD5"
##!define REG_AUTH_DEFAULT_ALG "AKAv2-MD5"
##!define REG_AUTH_DEFAULT_ALG "MD5"
##!define REG_AUTH_DEFAULT_ALG "CableLabs-Digest"
##!define REG_AUTH_DEFAULT_ALG "3GPP-Digest"
##!define REG_AUTH_DEFAULT_ALG "TISPAN-HTTP_DIGEST_MD5"
#Let the HSS decide
##!define REG_AUTH_DEFAULT_ALG "HSS-Selected"
capture
20231207c.zip
Here the related case with herlesupreeth:
herlesupreeth/docker_open5gs#263
Thanks in advance!
SMF CRASH:
01/20 01:58:35.052: [smf] INFO: [Added] Number of SMF-UEs is now 1 (../src/smf/context.c:1019)
01/20 01:58:35.052: [smf] INFO: [Added] Number of SMF-Sessions is now 1 (../src/smf/context.c:3068)
01/20 01:58:35.052: [smf] INFO: UE IMSI[311435000070570] APN[internet] IPv4[10.45.10.68] IPv6[] (../src/smf/s5c-handler.c:275)
01/20 01:58:35.405: [smf] ERROR: Not implemented(432) (../src/smf/gx-path.c:1572)
01/20 01:58:35.407: [gtp] INFO: gtp_connect() [10.90.250.25]:2152 (../lib/gtp/path.c:60)
01/20 01:58:35.407: [smf] FATAL: smf_bearer_tft_update: should not be reached. (../src/smf/context.c:2579)
01/20 01:58:35.408: [core] FATAL: backtrace() returned 12 addresses (../lib/core/ogs-abort.c:37)
/usr/bin/open5gs-smfd(+0x17e80) [0x5609d790ee80]
/usr/bin/open5gs-smfd(+0x45d81) [0x5609d793cd81]
/usr/bin/open5gs-smfd(+0x25614) [0x5609d791c614]
/usr/lib/x86_64-linux-gnu/libogscore.so.2(ogs_fsm_dispatch+0x25) [0x7ff617f49c15]
/usr/lib/x86_64-linux-gnu/libogscore.so.2(ogs_fsm_dispatch+0x25) [0x7ff617f49c15]
/usr/bin/open5gs-smfd(+0x18ffa) [0x5609d790fffa]
/usr/lib/x86_64-linux-gnu/libogscore.so.2(ogs_fsm_dispatch+0x25) [0x7ff617f49c15]
/usr/bin/open5gs-smfd(+0x1088b) [0x5609d790788b]
/usr/lib/x86_64-linux-gnu/libogscore.so.2(+0xa345) [0x7ff617f3b345]
/usr/lib/x86_64-linux-gnu/libc.so.6(+0x94ac3) [0x7ff6170b3ac3]
/usr/lib/x86_64-linux-gnu/libc.so.6(+0x126850) [0x7ff617145850]
Open5GS daemon v2.7.0
Looks like AVP 432 should not be in the Gx credit control answer from my reading.
setting the Rating Group to NULL in the DB was a quick fix for this issue.
It does not work,could you tell me the version of python and mysql?
==> diameter.log <==
2021-03-17 07:20:41,066 : failed to decode sub-avp - error: invalid literal for int() with base 16: ''
Should only parse if length is greater than 0
Know if pushing to any peers is failing
Hello, its been a few days and i gave up...
i have tried everything, but i still get the error:
root@alphaepc:~/pyhss/services# journalctl -xu pyhss_hss
bal. 29 08:44:30 alphaepc systemd[1]: Started PyHSS HSS Service.
░░ Subject: A start job for unit pyhss_hss.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit pyhss_hss.service has finished successfully.
░░
░░ The job identifier is 783790.
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO]
bal. 29 08:44:30 alphaepc python3[69668]:
bal. 29 08:44:30 alphaepc python3[69668]: ###### ## ## ##### #####
bal. 29 08:44:30 alphaepc python3[69668]: ## ## ## ## ## ## ## ##
bal. 29 08:44:30 alphaepc python3[69668]: ## ## ## ## ## ## ## ##
bal. 29 08:44:30 alphaepc python3[69668]: ###### ## ## ####### ##### #####
bal. 29 08:44:30 alphaepc python3[69668]: ## ## ## ## ## ## ##
bal. 29 08:44:30 alphaepc python3[69668]: ## ## ## ## ## ## ## ## ##
bal. 29 08:44:30 alphaepc python3[69668]: ## ##### ## ## ##### #####
bal. 29 08:44:30 alphaepc python3[69668]: ##
bal. 29 08:44:30 alphaepc python3[69668]: ####
bal. 29 08:44:30 alphaepc python3[69668]: HSS Service
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO] Not loading EIR IMEI TAC Database as Redis not enabled or TA>
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO] Initialized Diameter Library
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO] Origin Host: hss.localpyhss
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO] Realm: localpyhss
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO] Product Name: pyHSS
bal. 29 08:44:30 alphaepc python3[69668]: [04/29/2024 08:44:30] [INFO] PLMN: 246/99
bal. 29 08:44:30 alphaepc systemd[1]: pyhss_hss.service: Deactivated successfully.
░░ Subject: Unit succeeded
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ The unit pyhss_hss.service has successfully entered the 'dead' state.
bal. 29 08:44:30 alphaepc systemd[1]: pyhss_hss.service: Scheduled restart
tried to change the ip, still the same issue, on wireshark i do see some traffic, but it still doesn't work, everything is configured as it should be, the installation guide is kinda missing, so i tried to follow it, and after playing around tried asking chatgpt, still the same issue...
After setting test environment for test_Diameter.py
, I noticed the test test_B_Recv_AIR
is failing. I believe this assertion should be updated
- self.assertEqual(packet_vars['ApplicationId'], 0, "Application ID Mismatch")
+ self.assertEqual(packet_vars['ApplicationId'], 16777251, "Application ID Mismatch")
I could submit a PR but wanted to check that the test suites should be running before doing so
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.