Microsemi-LGOO

Microsemi AN1256 Web Polokalama Talosaga

Microsemi-AN1256-Web-Polokalame-Talosaga-PRO

Folasaga

JSON (JavaScript Object Notation) o se tulaga tatala file fa'asologa e fa'aoga ai tusitusiga e mafai ona faitau e tagata mo le fesuia'iga o fa'amaumauga. Ose fa'amaumauga masani e fa'aogaina mo feso'ota'iga su'esu'e/server asynchronous.
Mo le fou web mamanu itulau, JSON format e mafai ona suitulaga mo le uluai sitaili AJAX. Faʻatusatusa i le AJAX, faʻaaoga JSON faia le Web faigofie ma faigofie le faatinoga. E na'o le tagata fa'atupu e mana'omia le taula'i i ai web mamanu itulau ma le Web e mafai ona le fa'atinoina le fa'atinoina o le fa'atinoga talu ai ua uma ona lagolagoina le JSON auala i totonu ta'itasi WebStaX software modules.
O lenei pepa o loʻo taʻu mai ai le taʻiala a le au fai polokalame mo le inisinia software e manaʻomia ona atiaʻe le Web itulau e ala i le JSON. O auiliiliga taualumaga ma exampo lo'o aofia fo'i i vaega nei.

JSON fa'amatalaga avanoa avanoa

Ua umaview
O le JSON data access flow lea o se HTTP feso'ota'iga e amata mai le kalani(su'esu'e). O le laulau HTML o lo'o faia fa'amalosi e tusa ai ma fa'amaumauga a le JOSN na maua mai le 'au'aunaga(DUT) itu.Microsemi-AN1256-Web-Polokalame-Talosaga-FIG 1

Ata 1. Le avanoa e tafe i le va o tagata o tausia ma le server

Talosaga/Tali JSON fa'amaumauga
O le pepa talosaga a le JSON e faʻavae i luga o le HTTP talosaga post method ma o mea e tatau ona mulimulitaʻi i le MSCC JSON format.

  • Talosaga JSON syntax:{“auala”:” ”,”params”:[ ], “id:”jsonrpc”}
  • Tali JSON syntax: {“sese”: ,”i'uga”: , “id:”jsonrpc”}

O ata nei o loʻo faʻaalia ai le JSON i le va o le browser ma le DUT.Microsemi-AN1256-Web-Polokalame-Talosaga-FIG 2

Ata 2. Ata o le talosaga HTTP mai le tagata o tausiaMicrosemi-AN1256-Web-Polokalame-Talosaga-FIG 3

Ata 3. Ata o le tali HTTP mai le server

MSCC JSON faʻamatalaga
Ina ia maua le faʻamatalaga atoa a le JSON e aofia ai le metotia, parakalafa, faʻamatalaga ma isi. Faʻapipiʻi "http:// /json_spec" i luga o lau tuatusi tuatusi pa. O loʻo i ai se isi auala avanoa e ala i le igoa ole igoa ole JSON "jsonRpc.status.introspection.specific.inventory.get", e faʻaaogaina mo se auala faʻapitoa.Microsemi-AN1256-Web-Polokalame-Talosaga-FIG 4

Ata 4. Ata o le JSON faʻamatalaga web itulau

Web fa'avae

O le Web fa'avae i totonu WebStaX software e fa'avae i luga o se punaoa tatala MooTools. O se aofa'iga o mea fa'aoga JavaScript ma laisene MIT. (http://mootools.net/license.txt) O le lisi o meaʻai ma le tele o web o itulau e fa'avae i luga o le fa'avae. O le AJAX ma le JSON algorithm ua uma ona tuʻufaʻatasia i ana faʻaoga.
E lē gata i lea, WebStaX software e maua ai isi mea aoga e aoga mo le JSON web mamanu itulau.

  • json.js – Fa'aoga mo le fa'asalalauina/maua mai o fa'amatalaga fa'amalosi ma le syntax JSON.
  • dynforms.js – Fa'aoga mo le fatuina o le laulau HTML ma le malosi.
  • validate.js – Fa'aoga mo le fa'amaoniaina ole fomu HTML.

O lo'o iai le faletusi atoa a le JavaScript i lalo o le la'au fa'apogai: webstax2\ vtss_appl\web\html\lib.

Taiala mo JSON Web mamanu itulau

O lenei vaega o loʻo taʻitaʻia pe faʻapefea ona mamanuina a web itulau fa'avae ile MSCC JavaScript library. Matou te faʻaogaina le Mirror global configured web itulau e pei o le example iinei. Ole feso'ota'iga asynchronous e fa'avae ile HTTP JSON auala avanoa ma o fa'asologa uma o le lalolagi o lo'o lisiina ile laulau HTML e tasi.
O le web fa'asologa o itulau o lo'o lisiina i lalo ma o le fa'ailoga atoa o lo'o i lalo o le fa'atonuga o la'au: webstax2\vtss_appl\mirror\html\mirror_ctrl.htm. Ina ia maua atili masani web itulau faasino, tagai i le vaega faaopoopo.

Fa'ata & RMirror Confiquration LaulauMicrosemi-AN1256-Web-Polokalame-Talosaga-FIG 5

Ata 5. Example o laulau fa'atulagaina fa'avaomalo

Fa'atonu Web itulau

ulutala HTML
Fa'aaofia faletusi JS e mana'omia ile HTML tag.

Fa'amata le punaoa laulau fa'amalosi

  • A'o sauni le pepa HTML, vala'au DynamicTable() e amatalia le punaoa laulau fa'amalosi.
  • Ole DynamicTable() e fa'aaogaina e fatu ai le laulau fa'amalosi pe a uma ona maua fa'amaumauga a le JSON.
  • Ona valaʻau lea o le requestUpdate e amata ai le faʻatonuga o le JSON.
  1. window.addEvent('domready', galuega() {
  2. // Fausia se fomu faʻatasi ma le tino laulau mo le mauaina / faʻasalalau faʻamatalaga JSON
  3. myDynamicTable = fou DynamicTable(“myTableContent”, “config”,”plusRowCtrlBar”);
    4
  4. requestUpdate();
  5. });

Talosaga/Tali JSON fa'amaumauga

  • A sauni le pepa HTML, faʻaaoga requestJsonDoc() e lafo ai le talosaga a le JSON "mirror.config.session.get" e maua ai faʻamatalaga e uiga i sauniga faʻatulagaina.
  • A maeʻa ona maua le faʻamaumauga a le JSON mo le "mirror.capabilities.get", o le a faʻagasolo le galuega callback requestUpdate(). O le galuega requestUpdate o le a valaau "mirror.config.session.get" e maua ai le faʻatulagaga o loʻo iai nei. A maua le faʻatulagaga o loʻo i ai nei, e valaʻau le function processUpdate e fausia le laulau e faʻaalia.
  1. galuega requestUpdate()
  2. {
  3. // Toe faʻafoʻi mea o le laulau
  4. myDynamicTable.restore();
    5
  5. // O lenei laulau lua faʻamatalaga JSON.
  6. requestJsonDoc(“mirror.config.session.get”, null, processUpdate, “config”);
  7. }

Fa'agasolo le fa'amaumauga a le JSON na maua

  • O le faagasologa o galuegaUpdate() e faʻaaogaina e faʻapipiʻi ai le laulau faʻamalosi pe a uma ona maua faʻamaumauga a le JSON.
  • Ole addRows() e fa'aoga e fa'aopoopo ai laina laulau. myDynamicTable.update() fa'atulagaina le
    laulau HTML e tusa ai ma faʻamatalaga i laina laulau.
  1. galuega fa'afouFa'afouina(recv_json, igoa)
  2. {
  3. // Le amanaʻia le faagasologa pe a leai se faʻamatalaga e maua
  4. afai (!recv_json) {
  5. alert("Ua le manuia le maua o faʻamatalaga malosi.");
  6. toe foi mai;
  7. }
  8. // Faasaoina le faʻamaumauga a le JSON na maua
  9. myDynamicTable.saveRecvJson(“config”, recv_json);
  10. // Faaopoopo laina laulau
  11. var table_rows = addRows(recv_json);
  12. myDynamicTable.addRows(table_rows);
  13. // Faʻafouina lenei laulau faʻamalosi
  14. myDynamicTable.update();
  15. // Toe faafou le taimi
  16. var autorefresh = document.getElementById(“autorefresh”);
  17. afai (autorefresh && autorefresh.checked) {
  18. afai (timerID) {
  19. clearTimeout(taimi ID);
  20. }
  21. timerID = setTimeout('requestUpdate()', settingsRefreshInterval());
  22. }
  23. }

Faaopoopo laina laulau

  • I le addRows () galuega, matou te faʻaogaina le JSON format e faʻatumu ai taʻiala taʻitasi i le lalolagi i le laina laulau.
  • O fanua HTML uma o lo'o lisiina i le JSON array ("table_rows") ma le syntax o le laulau laulau o lo'o i lalo.

Syntax:
laulau_laina:[ , , … ] : { , , … }
: {“ituaiga”: , “params”:[ , , …, ]}

  • I lenei tulaga, o laina taitasi e lima fanua: "Session ID", "Mode", "Type", "VLAN ID" ma le "Reflector Port" Mo example,
ID Sauniga (Igoa fanua: int32_t) 1 (Id o le sauniga fa'ata)
Faiga (Igoa fanua: vtss_bool_t) moni (O lona uiga ua mafai le sauniga fa'ata)
Ituaiga (Igoa fanua: enumeration

{fa'ata, rMirrorSource, rMirrorDestination}

RMirror Punavai (O le puna lea o se sauniga faʻata mamao
VLAN ID (Igoa fanua: uint16_t) 200 (le vlan fa'aoga mo fa'ata)
Taulaga Reflector (Igoa fanua: vtss_ifindex_t) Ki 1/1 (O le uafu e lafo i ai le felauaiga faʻata
  • O le myDynamicTable.addRows() o le a faʻaliliuina le JSON faʻamaumauga i le HTML format ma faʻaalia le laulau HTML.
  1. galuega addRow(ki, val)
  2. {
  3. var none_map_val = 0xFFFFFFFF, none_map_text = “Leai”, none_interface_text = “LEAI”;
  4. var tunnel_mode_suffix = val.TunnelMode == “useglobal” ? ” (” + oTTunnelMode[oVTunnelMode.indexOf(global_conf.tunnelMode)] + “)” : “”;
  5. var laina = {fanua:[
  6. {type:”link”, params:[“cr”, “mirror.htm?session_id=” + ki, ki]},
  7. {ituaiga:”tusitala”, params:[oTMode[oVMode.indexOf(val.Mode)], “c”]},
  8. {ituaiga:”tusitusiga”, params:[oTType[oVType.indexOf(val.Type)], “c”]},
  9. {type:”text”, params:[val.Type == “faata” ? “-“:
    val.RMirrorVlan, “c”]},
  10. {type:”text”, params:[val.Type == “rMirrorSource” ?
    val.ReflectorPort : “-” , “c”]}
  11. ]};
  12. toe fo'i laina;
  13. }
  14. galuega addRows(recv_json)
  15. {
  16. laina laina, avanoa_colspan = 7;
  17. var table_rows = fou Array();
  18. // Fa'aopoopo le ulutala laulau
  19. addHeader( laulau_laina);
  20. // Fa'aopoopo le laina tasi
  21. Object.each(recv_json, galuega(faamaumauga) {
  22. table_rows.push(addRow(record.key, record.val));
  23. });
  24. toe faafoi laulau_laina;
  25. }

Web itulau fesoasoani
Mo le web fesoasoani itulau mamanu, o le fesoasoani faʻamatalaga e mafai ona faʻasino i le JSON faʻamatalaga, o le faʻamatalaga faʻamatalaga e mafai ona ogatasi ma le JSON galuega ma fesoasoani e faʻaitiitia faʻamatalaga faʻasalalau. ExampO iinei o loʻo maua mai le dhcp6 relay configuration.

Hyper-sootaga i le puna file
Tofi le fesoasoani file nofoaga i lona puna file HTML tag. Ole igoa fesuia'i tumau "help_page" e fa'aoga mo le web fesoasoani itulau tofiga.

  1. // Fesoasoani itulau togafiti
  2. var help_page = “/help/help_xxx.htm”;

Faʻafouina faʻamatalaga fanua HTML mai faʻamatalaga JSON

  • Fa'aoga pe HTML tag e fa'ailoa le fa'amatalaga laulau HTML ma tu'uina atu se ID tulaga ese mo le tag.
  • A sauni le pepa HTML, valaʻau loadXMLDoc() e maua ai le faʻamatalaga atoa a le JSON poʻo le mauaina o le faʻamatalaga metotia faʻapitoa e ala ile igoa ole JSON "jsonRpc.status.introspection.specific.inventory.get".
  • O le processTableDesc() e fa'aaogaina e fa'afou ai le fa'amatalaga laulau ma processUpdate() fa'aaogaina e fa'afou ai le fa'amatalaga o le laulau.
  • I le processUpdate (), valaʻau updateTableParamsDesc () e faʻafouina elemene JSON e fetaui ma igoa elemene patino.
  • Fa'afou le pe tag HTML totonu e tusa ai ma le faʻamatalaga elemene.
  1. /* Fa'afouina fanua fa'amatalaga HTML */
  2. function processTableDesc(req) {
  3. afai (!req.responseText) {
  4. toe foi mai;
  5. }
  6. var json_spec = JSON.decode(req.responseText);
  7. // Faʻafouina faʻamatalaga laulau
  8. $(“TableDesc”).innerHTML = getJsonSpecElement(json_spec, “groups”, “dhcp6_relay.config.vlan”).faamatalaga;
  9. }
  10. /* Fa'afouina le fa'amatalaga o le laulau HTML */
  11. galuega fa'afouFa'afouina(recv_json) {
  12. // Faʻafouina faʻamatalaga faʻasologa o laulau
  13. var param_names = [
  14. {
  15. “alias”: “Fesootaiga”,
  16. “ituaiga”: “vtss_ifindex_t”,
  17. “igoa”: “vlanInterface”,
  18. “suffix”: “.”
  19. },
  20. {
  21. “alias”: “Fesoasoani Fesootaiga”,
  22. “ituaiga”: “vtss_ifindex_t”,
  23. “igoa”: “relayVlanInterface”,
  24. “suffix”: “. Le id o le faʻaoga faʻaoga mo le faʻafeiloaʻi."
  25. },
  26. {
  27. “Alias”: “Fa'asinomaga Tulaga”,
  28. “ituaiga”: “mesa_ipv6_t”,
  29. “igoa”: “relay_destination”,
  30. “suffix”: “. O le tuatusi IPv6 o le DHCPv6 server o lo'o talosagaina e tatau ona fa'afeiloa'i i ai. O le tau fa'aletonu 'ff05::1:3' o lo'o iai 'so'o se DHCP server'.”
  31. }
  32. ];
  33. updateTableParamsDesc(“TableParamsDesc”, recv_json, “dhcp6_relay.config.vlan.get”, param_names);
  34. }
  35. /* Maua JSON faʻamatalaga */
  36. window.addEvent('domready', galuega () {
  37. loadXMLDoc(“/json_spec”, processTableDesc);
  38. requestJsonDoc(“jsonRpc.status.introspection.specific.inventory.get”, “dhcp6_relay.config.vlan”, processUpdate);
  39. });

Hyper-so'otaga i le lisi o mea'ai

  • O le HTML source code of menu bar e fa'atupu mai file webstax2\vtss_appl\web\ menu_default.cxx.
  • Fa'asa'o mea o lo'o i ai file mo le Web itulau hyperlink.
  1. #pe a fa'amatala(VTSS_SW_OPTION_DHCP6_RELAY)
  2. ITEM(” Relay,dhcp6_relay.htm”);
  3. #endif //VTSS_SW_OPTION_DHCP6_RELAY

FAAMANATU
Matauina o le numera o uiga avanoa i ITEM(“”), lea e faʻaaogaina e filifili ai le tulaga o vaega i le lisi o meaʻai. I lenei tulaga, o mea uma web itulau o lo'o i lalo o le vaega "DHCPv6".Microsemi-AN1256-Web-Polokalame-Talosaga-FIG 6

Ata 6. Esample o laulau fa'atulagaina fa'avaomalo

Fa'aopoopo

masani web itulau

E i ai le tele o mea masani web e mafai ona fa'aoga itulau mo le mamanu fa'asino. Tasi fa'aopoopo exampLe fa'aalia iinei o le fa'atulagaina o se fa'ata fa'ata e tasi o lo'o maua i vtss_appl\mirror\html\mirror.htm.
O le web itulau o loʻo tuʻuina atu ai faʻamatalaga auʻiliʻili mo se faʻata faʻata e tasi. O lo'o lisiina uma fa'asologa fa'atulagaina.

  • Kiliki le "Save" button e faʻaoga ai le faʻatulagaga o loʻo iai nei.
  • Kiliki le "Reset" button e toe setiina ai le faatulagaga o iai nei.
  • Kiliki "Fa'aleaogaina" e toe fo'i i le pitoview o sauniga fa'ata
Fa'ata&RMirror Configuration

Fa'atonuga ole lalolagiMicrosemi-AN1256-Web-Polokalame-Talosaga-FIG 7

Punaoa VLAN(s) Fa'atonugaMicrosemi-AN1256-Web-Polokalame-Talosaga-FIG 8

Fa'atonuga o TaulagaMicrosemi-AN1256-Web-Polokalame-Talosaga-FIG 9

Ata 7. Example o fa'amatalaga auiliili o le sauniga fa'ata
O faʻamau "Save", "Reset" ma le "Cancel" e faʻaopoopoina e le html code:

JSON Poloaiga tafe
O lenei itulau e manaʻomia se faʻatonuga e lua laasaga:

  • Muamua e tatau ona maua le gafatia o le masini ma le metotia "mirror.capabilities.get". E le suia ia agava'a ma e na'o le tasi lava le taimi e faitau ai.
  • Ona manaʻomia lea ona maua le faʻatulagaga o loʻo i ai nei o le masini e faʻaaoga ai metotia "mirror.config.session.get", "port.status.get" ma i le tulaga o le faʻaputuina "topo.config.stacking.get".

O le valaau o le "mirror.capabilities.get" e amataina e le "domready" mea na tupu ma o le taunuuga ua faʻatulagaina e faʻatautaia e le galuega requestUpdate.
O le talosagaUpdate o le a amataina le valaau o le "mirror.config.session.get",
“port.status.get” ma i le tulaga o le faaputuina “topo.config.stacking.get” ma o taunuuga o nei valaau ua configured e taulimaina e le galuega prepareUpdate.
O le galuega prepareUpdate o le a aoina uma iʻuga, ma naʻo le taimi lava e maua uma ai o le a taʻua ai le galuega processUpdate o le a fausia ai laulau e faʻaalia i luga o le web.

Fa'asinomaga

  1. Wikipedia Javascript https://en.wikipedia.org/wiki/JavaScript
  2. JSON https://www.json.org/
  3. MoonTools https://mootools.net/

Pepa / Punaoa

Microsemi AN1256 Web Polokalama Talosaga [pdf] Taiala mo Tagata Fa'aoga
AN1256, AN1256 Web Polokalama Talosaga, Web Polokalama Talosaga, Talosaga

Fa'asinomaga

Tuu se faamatalaga

E le fa'asalalauina lau tuatusi imeli. Fa'ailogaina fanua mana'omia *