Skip to content

Commit

Permalink
Prepare for OSS release
Browse files Browse the repository at this point in the history
  • Loading branch information
linouxis9 committed Nov 29, 2023
1 parent b5bf00c commit 562bdbb
Show file tree
Hide file tree
Showing 102 changed files with 620 additions and 99 deletions.
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @linouxis9
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG] "
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen. If applicable, inform the sections and specifications that defines the expected behavior.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Architecture (please complete the following information):**
- OS: [e.g. Linux]
- Platform [e.g. x86_64, ...]
- Version [e.g. 22]
- Kernel [e.g. 5.0.0.23-generic]

**Log:**
If applicable, add log files to help understand your problem.

**Pcap:**
If applicable, add pcap files to help understand your problem.

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE] "
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen. If applicable, inform the specifications and sections the defines the behavior.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)

<!--- Put an `x` in all the boxes that apply: -->
- [ ] I have updated the documentation accordingly.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.

<!--- TO DO before submitting a Pull Request, make sure to put an `x` in all the boxes -->
- [ ] I have read the **CONTRIBUTING** document.
- [ ] Each of my commits messages include `Signed-off-by: Author Name <[email protected]>` to accept the DCO.
8 changes: 5 additions & 3 deletions .github/workflows/ci-workflow.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name: My5G-RANTester Workflow
name: PacketRusher Workflow
on:
pull_request:
push:
branches:
- master
- develop
jobs:
test:
name: build and test
Expand All @@ -16,7 +15,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: 1.14.10
go-version: 1.21.0

- name: Check Versions
run: |
Expand All @@ -34,3 +33,6 @@ jobs:
- name: Install Go Deps
run: go mod download

- name: Launch tests
run: go test -v ./test/amf
91 changes: 91 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
## HPE Contribution Guide

Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.

Contributing
------------
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.

* If you want to raise an issue such as a defect or an enhancement request, please open a GitHub issue for the appropriate project. Please keep the following in mind:

* Try to reduce your code to the bare minimum required to reproduce the issue.
* If we can't reproduce the issue, we can't fix it. Please list the exact steps required to reproduce the issue.

## Issues

If you have suggestions for how this project could be improved, or want to report a bug, open an issue! We'd love all and any contributions. If you have questions, too, we'd love to hear them.

It is a great way to contribute to PacketRusher by reporting an issue. Well-written and complete bug reports are always welcome! Please open an issue on GitHub and follow the template to fill in required information.

Before opening any issue, please look up the existing [issues](https://github.com/HewlettPackard/PacketRusher/issues) to avoid submitting a duplication.
If you find a match, you can "subscribe" to it to get notified on updates. If you have additional helpful information about the issue, please leave a comment.

When reporting issues include details but, because the issues are open to the public, when submitting the log and configuration files, be sure to remove any sensitive information, e.g. user name, password, IP address, and company name. You can replace those parts with "REDACTED" or other strings like "****".

Be sure to include the steps to reproduce the problem if applicable. It can help us understand and fix your issue faster.

Submitting Code Pull Requests
-----------------------------
We encourage and support contributions from the community. No fix is too small. We strive to process all pull requests as soon as possible and with constructive feedback. If your pull request is not accepted at first, please try again after addressing the feedback you received.

To make a pull request, you will need a GitHub account. For help, see GitHub's documentation on forking and pull requests.

All pull requests with code should include tests that validate your change.

Developer's Certificate of Origin
---------------------------------
All contributions must include acceptance of the DCO:

> Developer Certificate of Origin Version 1.1
>
> Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660
> York Street, Suite 102, San Francisco, CA 94110 USA
>
> Everyone is permitted to copy and distribute verbatim copies of this
> license document, but changing it is not allowed.
>
> Developer's Certificate of Origin 1.1
>
> By making a contribution to this project, I certify that:
>
> \(a) The contribution was created in whole or in part by me and I have
> the right to submit it under the open source license indicated in the
> file; or
>
> \(b) The contribution is based upon previous work that, to the best of my
> knowledge, is covered under an appropriate open source license and I
> have the right under that license to submit that work with
> modifications, whether created in whole or in part by me, under the same
> open source license (unless I am permitted to submit under a different
> license), as indicated in the file; or
>
> \(c) The contribution was provided directly to me by some other person
> who certified (a), (b) or (c) and I have not modified it.
>
> \(d) I understand and agree that this project and the contribution are
> public and that a record of the contribution (including all personal
> information I submit with it, including my sign-off) is maintained
> indefinitely and may be redistributed consistent with this project or
> the open source license(s) involved.
Sign your work
--------------
To accept the DCO, simply add this line to each commit message with your name and email address (*git commit -s* will do this for you):

Signed-off-by: Jane Example <[email protected]>

For legal reasons, no anonymous or pseudonymous contributions are accepted.

Other Ways to Contribute
------------------------
If you don't feel like writing code, you can still contribute!

1. You may submit updates and improvements to the documentation.
2. Submit articles and guides which are also part of the documentation.
3. Help answer questions on StackOverflow, Slack and GitHub.

References
----------
This contribution guide was inspired by the contribution guides for [Grommet](https://github.com/grommet/grommet/blob/master/CONTRIBUTING.md) and [CloudSlang](http://www.cloudslang.io/#/docs#contributing-code).
44 changes: 44 additions & 0 deletions DCO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Developer's Certificate of Origin
---------------------------------
All contributions must include acceptance of the DCO:

> Developer Certificate of Origin Version 1.1
>
> Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660
> York Street, Suite 102, San Francisco, CA 94110 USA
>
> Everyone is permitted to copy and distribute verbatim copies of this
> license document, but changing it is not allowed.
>
> Developer's Certificate of Origin 1.1
>
> By making a contribution to this project, I certify that:
>
> \(a) The contribution was created in whole or in part by me and I have
> the right to submit it under the open source license indicated in the
> file; or
>
> \(b) The contribution is based upon previous work that, to the best of my
> knowledge, is covered under an appropriate open source license and I
> have the right under that license to submit that work with
> modifications, whether created in whole or in part by me, under the same
> open source license (unless I am permitted to submit under a different
> license), as indicated in the file; or
>
> \(c) The contribution was provided directly to me by some other person
> who certified (a), (b) or (c) and I have not modified it.
>
> \(d) I understand and agree that this project and the contribution are
> public and that a record of the contribution (including all personal
> information I submit with it, including my sign-off) is maintained
> indefinitely and may be redistributed consistent with this project or
> the open source license(s) involved.

Sign your work
--------------
To accept the DCO, simply add this line to each commit message with your name and email address (*git commit -s* will do this for you):

Signed-off-by: Jane Example <[email protected]>

For legal reasons, no anonymous or pseudonymous contributions are accepted.
11 changes: 11 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Overview

This document contains a list of maintainers in this repo.

## Current Maintainers

| Name | Github ID |
|-----------|-------------------------------------------|
| Valentin | [linouxis9](https://github.com/linouxis9) |
| Akiya | [Raguideau](https://github.com/Raguideau) |
| Francesco | [frossq](https://github.com/frossq) |
37 changes: 32 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,38 @@

----
## Description

PacketRusher is a tool, based upon [my5G-RANTester](https://github.com/my5G/my5G-RANTester), dedicated to the performance testing and automatic validation of 5G Core Networks using simulated UE (user equipment) and gNodeB (5G base station).

If you have questions or comments, please email us: [PacketRusher team](mailto:[email protected]).
If you have questions or comments, feel free to open an issue.

PacketRusher borrows libraries and data structures from the [free5gc project](https://github.com/free5gc/free5gc).

## Installation
### Requirements
- Ubuntu 20.04 or RHEL 8
- Ubuntu 20.04 or RHEL
- /!\ gtp5g kernel module does not work on Ubuntu 22.04 / RHEL 9, work is under way to fix that.
- Windows is not supported (Windows does not support SCTP)
- Go 1.21.0 or more recent
- Root privilege
- Secure boot disabled (for custom kernel module)

PacketRusher is not yet supported on Docker.

### Dependencies
```bash
$ sudo apt install build-essentials linux-headers-generic make git wget tar
# Warning this command will remove your existing local Go installation if you have one
$ wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz && sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz
# Download PacketRusher source code
$ git clone https://github.hpe.com/valentin-demmanuele/PacketRusher # or download the ZIP from https://github.hpe.com/valentin-demmanuele/PacketRusher/archive/refs/heads/master.zip and upload it to your Linux server
$ git clone https://github.com/HewlettPackard/PacketRusher # or download the ZIP from https://github.com/HewlettPackard/PacketRusher/archive/refs/heads/master.zip and upload it to your Linux server
$ cd PacketRusher && export PACKETRUSHER=$PWD
```

### Build free5gc's gtp5g kernel module
```bash
$ cd $PACKETRUSHER/lib/gtp5g
$ make clean && make && sudo make install
# Make sure you have Secure boot disabled if you are unable to install the custom Kernel module
```

### Build PacketRusher CLI
Expand All @@ -43,4 +46,28 @@ $ go build cmd/packetrusher.go
$ ./packetrusher --help
```

You can edit the configuration in $PACKETRUSHER/config/config.yml, and then run a basic scenario using `./packetrusher multi-ue -n 1` while in the $PACKETRUSHER folder.
You can edit the configuration in $PACKETRUSHER/config/config.yml, and then run a basic scenario using `sudo ./packetrusher ue` while in the $PACKETRUSHER folder.
More complex scenarios are possible using `sudo ./packetrusher multi-ue`, see `./packetrusher multi-ue --help` for more details.

## Contributing
We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great!
You can review our [contributing guide](CONTRIBUTING.md).

### Developer's Certificate of Origin
All contributions must include acceptance of the [DCO](DCO.md).

#### Sign your work
To accept the DCO, simply add this line to each commit message with your name and email address (*git commit -s* will do this for you):

Signed-off-by: Jane Example <[email protected]>

For legal reasons, no anonymous or pseudonymous contributions are accepted.

## License
© Copyright 2023 Hewlett Packard Enterprise Development LP

This project is under the [Apache 2.0 License](LICENSE) license.

By contributing here, [you agree](DCO.md) to license your contribution under the terms of the Apache 2.0 License. All files are released with the Apache License 2.0.

PacketRusher borrows libraries and data structures from the [free5gc project](https://github.com/free5gc/free5gc), and is originally based upon [my5G-RANTester](https://github.com/my5G/my5G-RANTester).
4 changes: 0 additions & 4 deletions app.sh

This file was deleted.

43 changes: 0 additions & 43 deletions config/back.yml

This file was deleted.

4 changes: 4 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
/**
* SPDX-License-Identifier: Apache-2.0
* © Copyright 2023 Hewlett Packard Enterprise Development LP
*/
package config

import (
Expand Down
Loading

0 comments on commit 562bdbb

Please sign in to comment.