summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bortolin <simonebortolin@users.noreply.github.com>2022-08-08 09:51:54 +0200
committerSimone Bortolin <simonebortolin@users.noreply.github.com>2022-12-19 22:56:24 +0100
commit5ade57543989c37994289d060e2f2120e418b5a9 (patch)
treeea37034190f8aa715ce119276976fb2d0be6062d
parentRemoved an erroneous Image in ont-Nokia-g-010g-q.md (diff)
downloadhack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.tar
hack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.tar.gz
hack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.tar.bz2
hack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.tar.lz
hack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.tar.xz
hack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.tar.zst
hack-gpon.github.io-5ade57543989c37994289d060e2f2120e418b5a9.zip
-rw-r--r--404.md2
-rw-r--r--_config.yml2
-rw-r--r--_includes/danger.html3
-rw-r--r--_includes/info.html3
-rw-r--r--_includes/success.html3
-rw-r--r--_includes/warning.html3
-rw-r--r--_layouts/default.html19
-rw-r--r--_sass/color_schemes/light.scss2
-rw-r--r--_sass/custom/custom.scss63
-rw-r--r--ascii-hex.md63
-rw-r--r--assets/img/g-010g-p.jpg (renamed from assets/img/g-010g-q.jpg)bin90122 -> 90122 bytes
-rw-r--r--assets/static/speed-gpon-eth.html4
-rw-r--r--index.md10
-rw-r--r--just-the-docs.gemspec2
-rw-r--r--ont-D-LINK-DPN-100-Rev-A.md4
-rw-r--r--ont-Halny-HL-GSFP.md4
-rw-r--r--ont-Nokia-g-010g-p.md30
-rw-r--r--ont-Nokia-g-010g-q.md4
-rw-r--r--ont-T-W-TW2362H-CDEL.md42
-rw-r--r--ont-UFiber-UF-Instant.md2
-rw-r--r--ont-Zyxel-PMG3000-D20B.md4
-rw-r--r--ont-technicolor-afm0002.md12
-rw-r--r--ont-ziza-op151s.md42
-rw-r--r--ont.md4
-rw-r--r--quick-start.md2
-rw-r--r--speed-gpon-eth.md201
26 files changed, 412 insertions, 118 deletions
diff --git a/404.md b/404.md
index 1927e0b..51ec26c 100644
--- a/404.md
+++ b/404.md
@@ -8,4 +8,4 @@ description: Opps. The page you are looking for got lost.
---
-<p>The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this <a href="{{ '/' | absolute_url }}">site's home page</a>.</p>
+<p>The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this <a href="{{ '/' | relative_url }}">site's home page</a>.</p>
diff --git a/_config.yml b/_config.yml
index 207a48f..5d6e66e 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,4 +1,4 @@
-remote_theme: just-the-docs/just-the-docs
+remote_theme: simonebortolin/just-the-docs
title: "Hack GPON"
baseurl:
permalink: '/:title'
diff --git a/_includes/danger.html b/_includes/danger.html
deleted file mode 100644
index 83e7efb..0000000
--- a/_includes/danger.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div markdown="span" class="alert alert-danger" role="alert"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" role="img" aria-label="Warning:">
- <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
- </svg><span> <b>Important:</b> {{include.content}}</span></div>
diff --git a/_includes/info.html b/_includes/info.html
deleted file mode 100644
index 831dd3e..0000000
--- a/_includes/info.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div markdown="span" class="alert alert-info" role="alert"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" role="img" aria-label="Warning:">
- <path d="M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
-</svg><span><b>Note:</b> {{include.content}}</span></div>
diff --git a/_includes/success.html b/_includes/success.html
deleted file mode 100644
index 828fc5a..0000000
--- a/_includes/success.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div markdown="span" class="alert alert-success" role="alert"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" role="img" aria-label="Warning:">
- <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-3.97-3.03a.75.75 0 0 0-1.08.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.06L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-.01-1.05z"/>
- </svg><span> <b>Tip:</b> {{include.content}}</span></div>
diff --git a/_includes/warning.html b/_includes/warning.html
deleted file mode 100644
index a517518..0000000
--- a/_includes/warning.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div markdown="span" class="alert alert-warning" role="alert"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" role="img" aria-label="Warning:">
- <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/>
- </svg><span> <b>Warning:</b> {{include.content}}</span></div>
diff --git a/_layouts/default.html b/_layouts/default.html
index 2daef0d..0e1273a 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -38,11 +38,15 @@ layout: table_wrappers
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
</svg>
</symbol>
+ {% include icons/alert.html %}
+ {% include icons/copy.html %}
+ {% include icons/external_link.html %}
+ {% include icons/custom.html %}
</svg>
<div class="side-bar">
<div class="site-header">
- <a href="{{ '/' | absolute_url }}" class="site-title lh-tight">{% include title.html %}</a>
+ <a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a>
<a href="#" id="menu-button" class="site-button">
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
</a>
@@ -108,13 +112,13 @@ layout: table_wrappers
{%- for node in pages_list -%}
{%- if node.parent == nil -%}
{%- if page.parent == node.title or page.grand_parent == node.title -%}
- {%- assign first_level_url = node.url | absolute_url -%}
+ {%- assign first_level_url = node.url | relative_url -%}
{%- endif -%}
{%- if node.has_children -%}
{%- assign children_list = pages_list | where: "parent", node.title -%}
{%- for child in children_list -%}
{%- if page.url == child.url or page.parent == child.title -%}
- {%- assign second_level_url = child.url | absolute_url -%}
+ {%- assign second_level_url = child.url | relative_url -%}
{%- endif -%}
{%- endfor -%}
{%- endif -%}
@@ -180,7 +184,7 @@ layout: table_wrappers
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%}
{% for child in children_list %}
<li>
- <a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
+ <a href="{{ child.url | relative_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
</li>
{% endfor %}
</ul>
@@ -199,7 +203,7 @@ layout: table_wrappers
{% if site.last_edit_timestamp or site.gh_edit_link %}
<div class="d-flex mt-2">
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
- <p class="text-small text-grey-dk-000 mb-0 mr-2">
+ <p class="text-small text-grey-500 mb-0 mr-2">
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
</p>
{% endif %}
@@ -210,7 +214,7 @@ layout: table_wrappers
site.gh_edit_branch and
site.gh_edit_view_mode
%}
- <p class="text-small text-grey-dk-000 mb-0">
+ <p class="text-small text-grey-500 mb-0">
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
</p>
{% endif %}
@@ -268,4 +272,7 @@ layout: table_wrappers
</script>
{% endif %}
</body>
+{% if site.mermaid_enabled != false %}
+{%- include mermaid_init.html -%}
+{% endif %}
</html> \ No newline at end of file
diff --git a/_sass/color_schemes/light.scss b/_sass/color_schemes/light.scss
deleted file mode 100644
index 7526fcd..0000000
--- a/_sass/color_schemes/light.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-$link-color: $blue-000;
-$btn-primary-color: $blue-200; \ No newline at end of file
diff --git a/_sass/custom/custom.scss b/_sass/custom/custom.scss
index 5ee5683..4f18f08 100644
--- a/_sass/custom/custom.scss
+++ b/_sass/custom/custom.scss
@@ -1,9 +1,3 @@
-$purple-400: #2A1264 !default;
-$blue-400: #122664 !default;
-$green-400: #025341 !default;
-$yellow-400: #AD8305 !default;
-$red-400: #A62323 !default;
-
.page-header {
.github-edit {
@@ -57,7 +51,7 @@ ul.metadata {
content: "•";
padding-left: 5px;
padding-right: 5px;
- color: $grey-dk-000;
+ color: $grey-500;
}
&::before {
@@ -177,61 +171,6 @@ ul.metadata {
to {top: 0; opacity: 1}
}
-.alert {
- padding: $sp-3;
- margin-bottom: $sp-3;
- overflow: auto;
- border: $border $border-color;
- border-radius: $border-radius;
-
-
- svg {
- height: $spacing-unit;
- margin-right: 0.5 * $spacing-unit;
- width: $spacing-unit;
- }
-
- &.alert-warning {
- background-color: $yellow-000;
- color: $yellow-400;
- border-color: $yellow-100;
- svg {
- fill: $yellow-400;
- }
- }
-
- &.alert-danger {
- background-color: $red-000;
- color: $red-400;
- border-color: $red-100;
- svg {
- fill: $red-400;
- }
- }
-
- &.alert-info {
- background-color: $blue-000;
- color: $blue-400;
- border-color: $blue-100;
- svg {
- fill: $blue-400;
- }
- }
-
- &.alert-success {
- background-color: $green-000;
- color: $green-400;
- border-color: $green-100;
- svg {
- fill: $green-400;
- }
- }
-}
-
-.btn-yellow {
- @include btn-color($white, $yellow-100);
-}
-
figure {
border: $border $border-color;
border-radius: $border-radius;
diff --git a/ascii-hex.md b/ascii-hex.md
index ea87571..116efce 100644
--- a/ascii-hex.md
+++ b/ascii-hex.md
@@ -6,7 +6,62 @@ description: Tool for converter ASCII and Hex
---
-<iframe src="https://hack-gpon.github.io/assets/static/ascii-hex" title="ASCII and Hex converter" style="
- width: 100%;
- height: 50vh;
-"></iframe>
+<h1>ASCII To Hex</h1>
+<form id="ascii-to-hex">
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="ASCII" name="ascii-to-hex" id="ascii-to-hex" min="1000" max="10000">
+ <label for="ascii-to-hex">ASCII</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="Glue" name="ascii-to-hex-glue" id="ascii-to-hex-glue" value=" ">
+ <label for="ascii-to-hex-glue">Glue</label>
+ </div>
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="Calculate!">
+ </div>
+ <div class="form-floating mb-3">
+ <input readonly class="form-control" type="text" id="hex-result" placeholder="HEX Result">
+ <label for="hex-result">HEX Result</label>
+ </div>
+</form>
+<h1>Hex To ASCII</h1>
+<form id="hex-to-ascii">
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="HEX" name="hex-to-ascii" id="hex-to-ascii">
+ <label for="hex-to-ascii">HEX</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="Separator" name="hex-to-ascii-separator" id="hex-to-ascii-separator" value=" ">
+ <label for="hex-to-ascii-separator">Separator</label>
+ </div>
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="Calculate!">
+ </div>
+ <div class="form-floating mb-3">
+ <input readonly class="form-control" type="text" id="ascii-result" placeholder="ASCII Result">
+ <label for="ascii-result">ASCII Result</label>
+ </div>
+</form>
+
+<script>
+ var asciiToHexForm = document.getElementById('ascii-to-hex');
+ asciiToHexForm.addEventListener('submit',(event) => {
+ event.preventDefault();
+ var fomrdata = new FormData(asciiToHexForm);
+ var str = fomrdata.get('ascii-to-hex');
+ var glue = fomrdata.get('ascii-to-hex-glue');
+ var hex = [...str].map((elem, n) => "0x"+Number(str.charCodeAt(n)).toString(16)).join(glue);
+ document.getElementById('hex-result').value = hex;
+ });
+
+ var hexToAsciiForm = document.getElementById('hex-to-ascii');
+ hexToAsciiForm.addEventListener('submit',(event) => {
+ event.preventDefault();
+ var fomrdata = new FormData(hexToAsciiForm);
+ var str = fomrdata.get('hex-to-ascii');
+ var separator = fomrdata.get('hex-to-ascii-separator');
+ var ascii = str.split(separator).map(el => String.fromCharCode(Number(el))).join('');
+ document.getElementById('ascii-result').value = ascii;
+ });
+
+</script>
diff --git a/assets/img/g-010g-q.jpg b/assets/img/g-010g-p.jpg
index afef8f8..afef8f8 100644
--- a/assets/img/g-010g-q.jpg
+++ b/assets/img/g-010g-p.jpg
Binary files differ
diff --git a/assets/static/speed-gpon-eth.html b/assets/static/speed-gpon-eth.html
index 8c8f41a..f910a3e 100644
--- a/assets/static/speed-gpon-eth.html
+++ b/assets/static/speed-gpon-eth.html
@@ -54,7 +54,7 @@
</div>
<div class="form-floating mb-3">
<input readonly class="form-control" type="number" id="maxSpeed" placeholder="Theoretical maximum speed">
- <label for="maxSpeed">Theoretical maximum speed (Gbps)</label>
+ <label for="maxSpeed">Theoretical maximum speed (Mbps)</label>
</div>
<div class="form-floating mb-3">
<input readonly class="form-control" type="number" id="overhead" placeholder="Ethernet overhead (%)">
@@ -103,7 +103,7 @@
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" placeholder="Theoretical maximum speed (Gbps)" name="gpon-maxSpeed" id="gpon-maxSpeed" readonly>
- <label for="gpon-maxSpeed">Theoretical maximum speed (Gbps)</label>
+ <label for="gpon-maxSpeed">Theoretical maximum speed (Mbps)</label>
</div>
<div class="form-floating mb-3">
<input type="number" class="form-control" placeholder="GPON overhead (%)" name="gpon-overhead" id="gpon-overhead" readonly>
diff --git a/index.md b/index.md
index 98effc2..1c05957 100644
--- a/index.md
+++ b/index.md
@@ -8,15 +8,15 @@ description: Worldwide wiki on how to access, change and edit ONTs
Most ONTs run customized firmware which implem vendor and ISP-specific integrations and are locked down in functionality to match service requirements.
ONTs often perform differently depending on the OLT and the settings applied by the ISP; for convenience it is often necessary to switch from an external ONT to an SFP or vice-versa, but most OLTs perform so many checks on the ONT making a simple replacement impossible.
-{% include warning.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." %}
+{% include alert.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." alert="Warning" icon="svg-warning" color="red" %}
-{% include info.html content="The material and information contained on this website is for general information purposes only. You should not rely upon the material or information on the website as a basis for making any business, legal or any other decisions. Whilst we endeavour to keep the information up to date and correct, hack-gpon.github.io makes no representations or warranties of any kind, express or implied about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services or related graphics contained on the website for any purpose. Any reliance you place on such material is therefore strictly at your own risk. We do not take responsibility for broken, bricked, unusable or become doorstops. To the extent not prohibited by law, in no circumstances shall hack-gpon.github.io be liable to you or any other third parties for any loss or damage (including, without limitation, damage for loss of business or loss of profits) arising directly or indirectly from your use of or inability to use, this site or any of the material contained in it." %}
+{% include alert.html content="The material and information contained on this website is for general information purposes only. You should not rely upon the material or information on the website as a basis for making any business, legal or any other decisions. Whilst we endeavour to keep the information up to date and correct, hack-gpon.github.io makes no representations or warranties of any kind, express or implied about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services or related graphics contained on the website for any purpose. Any reliance you place on such material is therefore strictly at your own risk. We do not take responsibility for broken, bricked, unusable or become doorstops. To the extent not prohibited by law, in no circumstances shall hack-gpon.github.io be liable to you or any other third parties for any loss or damage (including, without limitation, damage for loss of business or loss of profits) arising directly or indirectly from your use of or inability to use, this site or any of the material contained in it." alert="Warning" icon="svg-warning" color="yellow" %}
-{% include danger.html content="Certain links in this website will lead to websites which are not under the control of hack-gpon.github.io. When you visit these, you will leave the hack-gpon.github.io website. hack-gpon.github.io has no control over and accepts no liability in respect of materials, products or services available on any website which is not under the control of hack-gpon.github.io." %}
+{% include alert.html content="Certain links in this website will lead to websites which are not under the control of hack-gpon.github.io. When you visit these, you will leave the hack-gpon.github.io website. hack-gpon.github.io has no control over and accepts no liability in respect of materials, products or services available on any website which is not under the control of hack-gpon.github.io." alert="Warning" icon="svg-warning" color="red" %}
-{% include warning.html content="This site is maintained and updated by a community of enthusiasts, and therefore in no way replaces or replaces official vendor and provider guides. Use of this content is at your own risk." %}
+{% include alert.html content="This site is maintained and updated by a community of enthusiasts, and therefore in no way replaces or replaces official vendor and provider guides. Use of this content is at your own risk." alert="Warning" icon="svg-warning" color="yellow" %}
-{% include success.html content="You can also help us with the content of this site, on each page you will find a button to edit on GitHub." %}
+{% include alert.html content="You can also help us with the content of this site, on each page you will find a button to edit on GitHub." alert="Tip" icon="svg-info" color="green" %}
This wiki contains links, codes, tutorials on how to access, edit and change ONTs.
Are you ready?
diff --git a/just-the-docs.gemspec b/just-the-docs.gemspec
index 1e7dc1e..cd073de 100644
--- a/just-the-docs.gemspec
+++ b/just-the-docs.gemspec
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
spec.email = ["patrick.marsceill@gmail.com"]
spec.summary = %q{A modern, highly customizable, and responsive Jekyll theme for documention with built-in search.}
- spec.homepage = "https://github.com/just-the-docs/just-the-docs"
+ spec.homepage = "https://github.com/simonebortolin/just-the-docs"
spec.license = "MIT"
spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|bin|_layouts|_includes|lib|Rakefile|_sass|LICENSE|README)}i) }
diff --git a/ont-D-LINK-DPN-100-Rev-A.md b/ont-D-LINK-DPN-100-Rev-A.md
index ee8d42b..0d6ced5 100644
--- a/ont-D-LINK-DPN-100-Rev-A.md
+++ b/ont-D-LINK-DPN-100-Rev-A.md
@@ -28,8 +28,8 @@ parent: ONT
- [Zyxel PMG3000-D20B](ont-Zyxel-PMG3000-D20B)
- [Halny HL-GSFP](ont-Halny-HL-GSFP)
- [D-LINK DPN-100-Rev-A](ont-D-LINK-DPN-100-Rev-A)
-- Zisa
-- T&W
+- [Ziza OP151s](ont-ziza-op151s)
+- [T&W TW2362H-CDEL](ont-T-W-TW2362H-CDEL)
## List of software versions
## List of partitions
diff --git a/ont-Halny-HL-GSFP.md b/ont-Halny-HL-GSFP.md
index 8a37b8e..9187fd8 100644
--- a/ont-Halny-HL-GSFP.md
+++ b/ont-Halny-HL-GSFP.md
@@ -27,8 +27,8 @@ parent: ONT
- [Zyxel PMG3000-D20B](ont-Zyxel-PMG3000-D20B)
- [Halny HL-GSFP](ont-Halny-HL-GSFP)
- [D-LINK DPN-100-Rev-A](ont-D-LINK-DPN-100-Rev-A)
-- Zisa
-- T&W
+- [Ziza OP151s](ont-ziza-op151s)
+- [T&W TW2362H-CDEL](ont-T-W-TW2362H-CDEL)
## List of software versions
## List of partitions
diff --git a/ont-Nokia-g-010g-p.md b/ont-Nokia-g-010g-p.md
new file mode 100644
index 0000000..0584036
--- /dev/null
+++ b/ont-Nokia-g-010g-p.md
@@ -0,0 +1,30 @@
+---
+title: Nokia G-010G-P
+has_children: false
+parent: ONT
+---
+
+# Hardware Specifications
+
+| | |
+| ----------- | ---------------- |
+| Vendor | Nokia |
+| Model | G-010G-P |
+| Alias | |
+| Chipset | |
+| Flash | |
+| RAM | |
+| System | |
+| HSGMII | No |
+| Optics | SC/APC |
+| IP address | |
+| Web Gui | |
+| SSH | |
+| Form Factor | ONT |
+
+{% include image.html file="g-010g-p.jpg" alt="G-010G-P" caption="Nokia G-010G-P" %}
+
+# Miscellaneous Links
+- <a href="https://github.com/nanomad/nokia-ont-mib-parser">MIB file parser</a> for NOKIA's GPON ONTs (*helps you parsing the .mib file located in `/mnt/rwdir`*)
+
+
diff --git a/ont-Nokia-g-010g-q.md b/ont-Nokia-g-010g-q.md
index 6289952..e816061 100644
--- a/ont-Nokia-g-010g-q.md
+++ b/ont-Nokia-g-010g-q.md
@@ -12,7 +12,7 @@ parent: ONT
| Model | G-010G-Q |
| Alias | |
| Chipset | Realtek RTL9601B |
-| Flash | Winbond <a href="https://www.winbond.com/resource-files/w25q128jv%20revf%2003272018%20plus.pdf">W25Q128JV</a> 3V 128M-BIT SPI |
+| Flash | Winbond [W25Q128JV](https://www.winbond.com/resource-files/w25q128jv%20revf%2003272018%20plus.pdf) 3V 128M-BIT SPI |
| RAM | DDR2 325MHz |
| System | Linux (Luna SDK) |
| HSGMII | No |
@@ -47,7 +47,7 @@ You can easily communicate with the ONT using a TTL converter (for example the C
*You don't actually need the two VCC pins, just use TX/RX and GND*
-{% include warning.html content="The ONT's serial logic is 3V3." %}
+{% include alert.html content="The ONT's serial logic is 3V3." alert="Warning" icon="svg-warning" color="red" %}
Make sure the logic of your TTL converter is 3V3 too otherwise you might damage the ONT, in my case I wasn't sure the CH341A had a 3V3 logic for the TTL part so I set up a voltage divider made of 2 resistors between the TX pin and ground as shown in the image below.
diff --git a/ont-T-W-TW2362H-CDEL.md b/ont-T-W-TW2362H-CDEL.md
new file mode 100644
index 0000000..fd308f8
--- /dev/null
+++ b/ont-T-W-TW2362H-CDEL.md
@@ -0,0 +1,42 @@
+---
+title: T&W TW2362H-CDEL
+has_children: false
+parent: ONT
+---
+
+# Hardware Specifications
+
+| | |
+| ----------- | --------------- |
+| Vendor | T&W |
+| Model | TW2362H-CDEL |
+| Alias | |
+| Chipset | Lantiq PEB98035 |
+| Flash | 8 MB |
+| RAM | 64 MB |
+| System | T&W |
+| HSGMII | |
+| Optics | SC/APC |
+| IP address | |
+| Web Gui | |
+| Telnet | |
+| Form Factor | miniONT SFP |
+
+## Firmware is interchangeable with:
+
+- [Zyxel PMG3000-D20B](ont-Zyxel-PMG3000-D20B)
+- [Halny HL-GSFP](ont-Halny-HL-GSFP)
+- [D-LINK DPN-100-Rev-A](ont-D-LINK-DPN-100-Rev-A)
+- [Ziza OP151s](ont-ziza-op151s)
+- [T&W TW2362H-CDEL](ont-T-W-TW2362H-CDEL)
+
+## List of software versions
+## List of partitions
+## List of firmwares and files
+
+# Miscellaneous Links
+
+- [SFP-GPON](https://github.com/kovalenko/SFP-GPON)
+
+
+
diff --git a/ont-UFiber-UF-Instant.md b/ont-UFiber-UF-Instant.md
index f6a2fb3..3a74630 100644
--- a/ont-UFiber-UF-Instant.md
+++ b/ont-UFiber-UF-Instant.md
@@ -24,7 +24,7 @@ parent: ONT
## Firmware is interchangeable with:
-{% include warning.html content="The UFiber UF-Instant can be used as universal GPON stick with V2801F rootfs, but only with stock UF kernel (4.3.1/4.4.2): needed for Laser controller." %}
+{% include alert.html content="The UFiber UF-Instant can be used as universal GPON stick with V2801F rootfs, but only with stock UF kernel (4.3.1/4.4.2): needed for Laser controller." alert="Info" icon="svg-info" color="blue" %}
- [VSOL V2801F](ont-vsol-V2801F)
diff --git a/ont-Zyxel-PMG3000-D20B.md b/ont-Zyxel-PMG3000-D20B.md
index ceaa0eb..a9cc020 100644
--- a/ont-Zyxel-PMG3000-D20B.md
+++ b/ont-Zyxel-PMG3000-D20B.md
@@ -30,8 +30,8 @@ From the zyxel shell you can move to a standard linux shell via the `linuxshell`
- [Zyxel PMG3000-D20B](ont-Zyxel-PMG3000-D20B)
- [Halny HL-GSFP](ont-Halny-HL-GSFP)
- [D-LINK DPN-100-Rev-A](ont-D-LINK-DPN-100-Rev-A)
-- Zisa
-- T&W
+- [Ziza OP151s](ont-ziza-op151s)
+- [T&W TW2362H-CDEL](ont-T-W-TW2362H-CDEL)
# List of software versions
diff --git a/ont-technicolor-afm0002.md b/ont-technicolor-afm0002.md
index bc4b237..c959424 100644
--- a/ont-technicolor-afm0002.md
+++ b/ont-technicolor-afm0002.md
@@ -31,8 +31,8 @@ parent: ONT
- AFM0002FWB (IP address: 169.0.0.1)
- AFM0002WND
-{% include warning.html content="The version used to obtain the info shown on this page is the AFM0002TIM" %}
-{% include info.html content="The AFM0002FWB can be transformed into AFM0002TIM. The AFM0002FWB has an older software version." %}
+{% include alert.html content="The version used to obtain the info shown on this page is the AFM0002TIM" alert="Info" icon="svg-info" color="blue" %}
+{% include alert.html content="The AFM0002FWB can be transformed into AFM0002TIM. The AFM0002FWB has an older software version." alert="Warning" icon="svg-warning" color="red" %}
# List of software versions
@@ -90,7 +90,7 @@ GPON_SN=TMBB00000000
## Getting/Setting the ONT's PLOAM password
-{% include info.html content="The PLOAM password is stored in ASCII format" %}
+{% include alert.html content="The PLOAM password is stored in ASCII format" %}
```sh
# /etc/scripts/bin flash get GPON_PLOAM_PASSWD
@@ -126,7 +126,7 @@ sw_version1=V1_7_8_210412
# Low Level Modding
-{% include warning.html content="This section is based on `V1_7_8_210412` firmware version of the stick" %}
+{% include alert.html content="This section is based on `V1_7_8_210412` firmware version of the stick" %}
## Trasnfering files from/to the stick
@@ -140,7 +140,7 @@ From the PC to the stick
# cat lastgood.xml | ssh admin@192.168.2.1 "cat > /var/config/lastgood.xml"
```
-{% include warning.html content="If a Windows system is used replace type with cat and run the commands from cmd (not Powershell)" %}
+{% include alert.html content="If a Windows system is used replace type with cat and run the commands from cmd (not Powershell)" %}
## Extracting and repacking the rootfs
```sh
@@ -149,7 +149,7 @@ From the PC to the stick
```
## Flashing a new rootfs
-{% include info.html content="Only the inactive image can be flashed" %}
+{% include alert.html content="Only the inactive image can be flashed" %}
So mtd4/5 if you are on image1, mtd6/7 if you are on image0.
diff --git a/ont-ziza-op151s.md b/ont-ziza-op151s.md
new file mode 100644
index 0000000..b43fb1f
--- /dev/null
+++ b/ont-ziza-op151s.md
@@ -0,0 +1,42 @@
+---
+title: Ziza OP151S
+has_children: false
+parent: ONT
+---
+
+# Hardware Specifications
+
+| | |
+| ----------- | ------------------------------------------------------------------------ |
+| Vendor | Ziza |
+| Model | OP151S |
+| Alias | |
+| Chipset | Lantiq PEB98035 |
+| Flash | 8 MB |
+| RAM | 64 MB |
+| System | T&W |
+| HSGMII | |
+| Optics | SC/APC |
+| IP address | 192.168.1.1 |
+| Web Gui | ✅ user `admin`, password `admin` |
+| Telnet | ✅ user `admin`, password `admin` after user `twmanu`, password `twmanu` |
+| Form Factor | miniONT SFP |
+
+## Firmware is interchangeable with:
+
+- [Zyxel PMG3000-D20B](ont-Zyxel-PMG3000-D20B)
+- [Halny HL-GSFP](ont-Halny-HL-GSFP)
+- [D-LINK DPN-100-Rev-A](ont-D-LINK-DPN-100-Rev-A)
+- [Ziza OP151s](ont-ziza-op151s)
+- [T&W TW2362H-CDEL](ont-T-W-TW2362H-CDEL)
+
+## List of software versions
+## List of partitions
+## List of firmwares and files
+
+# Miscellaneous Links
+
+- [SFP-GPON](https://github.com/kovalenko/SFP-GPON)
+
+
+
diff --git a/ont.md b/ont.md
index 4dd04b1..056c2e8 100644
--- a/ont.md
+++ b/ont.md
@@ -30,6 +30,6 @@ The GPON part of Lantiq ended up in `/dev/null`, while the XGS-PON sector ended
The last produced batches of these SFPs date back to 2020/2021. All OEMs are currently migrating to Realtek.
-{% include warning.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." %}
+{% include alert.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." alert="Warning" icon="svg-warning" color="red" %}
-{% include success.html content="You can also help us with the content of this site, on each page you will find a button to edit on GitHub." %}
+{% include alert.html content="You can also help us with the content of this site, on each page you will find a button to edit on GitHub." alert="Tip" icon="svg-info" color="green" %}
diff --git a/quick-start.md b/quick-start.md
index b3a53b2..f1f2eea 100644
--- a/quick-start.md
+++ b/quick-start.md
@@ -6,4 +6,4 @@ description:
---
-{% include warning.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." %}
+{% include alert.html content="Playing with ONTs can cause your serial number/PLOAM password to be banned and faults to the optics, ONTs and OLTs. Always pay close attention to the calibration of the laser, under no circumstances should the calibration be changed." alert="Warning" icon="svg-warning" color="red" %}
diff --git a/speed-gpon-eth.md b/speed-gpon-eth.md
index 5e513ba..cda0641 100644
--- a/speed-gpon-eth.md
+++ b/speed-gpon-eth.md
@@ -6,7 +6,200 @@ description: Tool for calculating maximum speeds
---
-<iframe src="https://hack-gpon.github.io/assets/static/speed-gpon-eth.html" title="Theoretical maximum speed calculator" style="
- width: 100%;
- height: 50vh;
-"></iframe>
+
+<h1>Ethernet calculator</h1>
+<form id="eth-speed-mtu">
+ <div class="form-floating mb-3">
+ <input type="number" class="form-control" placeholder="MTU L2" name="mtu" id="mtu" value="1500" min="1000" max="10000">
+ <label for="mtu">MTU L2 (no overhead for PPPoE/MAP, only Ethernet PPPoE)</label>
+ </div>
+ <div class="form-floating mb-3">
+ <div class="mb-3">
+ <div class="form-check form-check-inline">
+ <input class="form-check-input" type="radio" id="ip4" name="ip" value="4" checked>
+ <label class="form-check-label" for="ip4">IPv4</label>
+ </div>
+ <div class="form-check form-check-inline">
+ <input class="form-check-input" type="radio" id="ip6" name="ip" value="6">
+ <label class="form-check-label" for="ip6">IPv6</label>
+ </div>
+ </div>
+ </div>
+ <select class="form-select mb-3" placeholder="IPv4 L2 protocol" name="ipv4protocol" id="ipv4protocol">
+ <option disabled selected>Select a Protocol</option>
+ <option value="ipoe">IPoE</option>
+ <option value="pppoe">PPPoE</option>
+ <option value="map-t">MAP-T</option>
+ <option value="map-e">MAP-E/4in6</option>
+ </select>
+ <select class="form-select mb-3" placeholder="IPv6 L2 protocol" name="ipv6protocol" id="ipv6protocol" disabled>
+ <option disabled selected>Select a Protocol</option>
+ <option value="ipoe">IPoE</option>
+ <option value="pppoe">PPPoE</option>
+ </select>
+ <select class="form-select mb-3" placeholder="Speed" name="speed">
+ <option disabled selected>Select a link speed</option>
+ <option value="10">10 Mbps</option>
+ <option value="100">100 Mbps</option>
+ <option value="200">200 Mbps</option>
+ <option value="500">500 Mbps</option>
+ <option value="1000">1 Gbps</option>
+ <option value="2500">2.5 Gbps</option>
+ <option value="5000">5 Gbps</option>
+ <option value="10000">10 Gbps</option>
+ </select>
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="Calculate!">
+ </div>
+ <div class="form-floating mb-3">
+ <input readonly class="form-control" type="number" id="maxSpeed" placeholder="Theoretical maximum speed">
+ <label for="maxSpeed">Theoretical maximum speed (Mbps)</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input readonly class="form-control" type="number" id="overhead" placeholder="Ethernet overhead (%)">
+ <label for="overhead">Ethernet overhead (%)</label>
+ </div>
+
+</form>
+<h1>Gpon calculator</h1>
+<form id="gpon-speed-mtu">
+ <div class="form-floating mb-3">
+ <input step="1" type="number" class="form-control" placeholder="ONT number" name="gpon-ont" id="gpon-ont" value="10" min="1" max="128" required>
+ <label for="gpon-ont">ONT number</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input step="1" type="number" class="form-control" placeholder="GEM frame number" name="gpon-gem" id="gpon-gem" value="26" min="1" max="40" required>
+ <label for="gpon-gem">GEM frame number</label>
+ </div>
+ <div class="mb-3">
+ <div class="form-check form-check-inline">
+ <input class="form-check-input" type="radio" id="gpon-ip4" name="gpon-ip" value="4" checked>
+ <label class="form-check-label" for="gpon-ip4">IPv4</label>
+ </div>
+ <div class="form-check form-check-inline">
+ <input class="form-check-input" type="radio" id="gpon-ip6" name="gpon-ip" value="6">
+ <label class="form-check-label" for="gpon-ip6">IPv6</label>
+ </div>
+ </div>
+ <select class="form-select mb-3" placeholder="IPv4 L2 protocol" name="gpon-ipv4protocol" id="gpon-ipv4protocol" required>
+ <option disabled selected>Select a Protocol</option>
+ <option value="ipoe">IPoE</option>
+ <option value="pppoe">PPPoE</option>
+ <option value="map-t">MAP-T</option>
+ <option value="map-e">MAP-E/4in6</option>
+ </select>
+ <select class="form-select mb-3" placeholder="IPv6 L2 protocol" name="gpon-ipv6protocol" id="gpon-ipv6protocol" disabled required>
+ <option disabled selected>Select a Protocol</option>
+ <option value="ipoe">IPoE</option>
+ <option value="pppoe">PPPoE</option>
+ </select>
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="Calculate!">
+ </div>
+ <div class="form-floating mb-3">
+ <input type="number" class="form-control" placeholder="GPON Average Ethernet Frame Size (Byte)" name="gpon-average-packet-size" id="gpon-average-packet-size" readonly>
+ <label for="gpon-average-packet-size">GPON Average Ethernet Frame Size (Byte) must be inside 1000-1500</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input type="number" class="form-control" placeholder="Theoretical maximum speed (Gbps)" name="gpon-maxSpeed" id="gpon-maxSpeed" readonly>
+ <label for="gpon-maxSpeed">Theoretical maximum speed (Mbps)</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input type="number" class="form-control" placeholder="GPON overhead (%)" name="gpon-overhead" id="gpon-overhead" readonly>
+ <label for="gpon-overhead">GPON overhead (%)</label>
+ </div>
+</form>
+
+<script>
+ var form = document.getElementById('eth-speed-mtu');
+ var radioIp = document.getElementsByName('ip');
+ [...radioIp].forEach(el => {el.addEventListener('change', (event) => {
+ var ip = document.querySelector('input[name="ip"]:checked').value;
+ document.getElementById('ipv4protocol').disabled = (ip === '6');
+ document.getElementById('ipv6protocol').disabled = (ip === '4');
+
+ });
+ });
+ form.addEventListener('submit',(event) => {
+
+ var formdata = new FormData(form);
+ event.preventDefault();
+ var overheadipv4 = {
+ "ipoe" : 20,
+ "pppoe" : 28,
+ "map-t" : 40,
+ "map-e" : 60,
+ };
+ var overheadipv6 = {
+ "ipoe" : 40,
+ "pppoe" : 48,
+ };
+ var overheadtcp = 20;
+ var overheadeth = 14;
+ var overheadfcs = 4;
+ var overheadgap = {
+ '10' : 5.875,
+ '100' : 12,
+ '200' : 8,
+ '500' : 8,
+ '1000' : 8,
+ '2500' : 5,
+ '5000' : 5,
+ '10000' : 5,
+ };
+ var preamble = 8;
+ var cip = formdata.get('ip');
+ var coverheadip = formdata.get('ip') === '4' ? overheadipv4[formdata.get('ipv4protocol')] : overheadipv6[formdata.get('ipv6protocol')];
+ var mtu = formdata.get('mtu');
+ var mss = mtu - coverheadip;
+ var overhead = overheadtcp + overheadeth + overheadfcs + overheadgap[formdata.get('speed')] + preamble + coverheadip;
+ document.getElementById('overhead').value = overhead/mss * 100;
+ var th = mss /(overhead + mss);
+
+ document.getElementById('maxSpeed').value = th * formdata.get('speed');
+
+ });
+ var formgpon = document.getElementById('gpon-speed-mtu');
+ var radioIp = document.getElementsByName('gpon-ip');
+ [...radioIp].forEach(el => {el.addEventListener('change', (event) => {
+ var ip = document.querySelector('input[name="gpon-ip"]:checked').value;
+ document.getElementById('gpon-ipv4protocol').disabled = (ip === '6');
+ document.getElementById('gpon-ipv6protocol').disabled = (ip === '4');
+
+ });
+ });
+ formgpon.addEventListener('submit',(event) => {
+
+ var formdata = new FormData(formgpon);
+ event.preventDefault();
+ var gtc = 38880;
+ var overheadgem = 5;
+ var overheadpcbd = 30 + 8*formdata.get('gpon-ont');
+ var overheadipv4 = {
+ "ipoe" : 20,
+ "pppoe" : 28,
+ "map-t" : 40,
+ "map-e" : 60,
+ };
+ var overheadipv6 = {
+ "ipoe" : 40,
+ "pppoe" : 48,
+ };
+ var overheadtcp = 20;
+ var overheadeth = 14;
+ var overheadfcs = 4;
+ var cip = formdata.get('gpon-ip');
+ var coverheadip = formdata.get('gpon-ip') === '4' ? overheadipv4[formdata.get('gpon-ipv4protocol')] : overheadipv6[formdata.get('gpon-ipv6protocol')];
+ var overheadframeeth = overheadtcp + overheadeth + overheadfcs + coverheadip;
+ var overheadgtc = overheadgem + formdata.get('gpon-gem') * (overheadpcbd+overheadframeeth);
+ var payload = gtc - overheadgtc;
+ document.getElementById('gpon-average-packet-size').value = payload/formdata.get('gpon-gem');
+
+
+ document.getElementById('gpon-overhead').value = overheadgtc/payload * 100;
+ var th = payload /gtc;
+
+ document.getElementById('gpon-maxSpeed').value = th * 2.48832;
+
+ });
+</script>