Skip to content

Commit

Permalink
Merge pull request #39 from loxilb-io/egr6-support
Browse files Browse the repository at this point in the history
PR - Support for fw6 config
  • Loading branch information
UltraInstinct14 authored Feb 27, 2025
2 parents f0f1eb3 + dec82c9 commit b9bb2bf
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 17 deletions.
17 changes: 13 additions & 4 deletions cmd/create/create_firewall.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@ ex) loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --allow --record
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --allow --setmark=10
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --drop
loxicmd create firewall --firewallRule="sourceIP:3ffe::1/128" --drop
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --trap
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --redirect=hs1
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --redirect=eth1
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --snat=10.10.10.1,3030
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --snat=10.10.10.1 (Do not change sourceport)
loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.3.1.2/32,preference:200" --snat=10.10.10.1,3030 --egress (Egress rules match for non-k8s traffic)
Expand Down Expand Up @@ -122,7 +123,7 @@ ex) loxicmd create firewall --firewallRule="sourceIP:1.2.3.2/32,destinationIP:2.
func GetFirewallRulePairList(o *api.FwRuleMod, FWrule []string) error {
for _, FirewallArg := range FWrule {
FirewallArgsPair := strings.Split(FirewallArg, ":")
if len(FirewallArgsPair) != 2 {
if len(FirewallArgsPair) < 2 {
return fmt.Errorf("FirewallArgs '%s' is invalid format", FWrule)
} else if FirewallArgsPair[0] == "protocol" {
protocol, err := strconv.Atoi(FirewallArgsPair[1])
Expand All @@ -131,9 +132,17 @@ func GetFirewallRulePairList(o *api.FwRuleMod, FWrule []string) error {
}
o.Rule.Proto = uint8(protocol)
} else if FirewallArgsPair[0] == "sourceIP" {
o.Rule.SrcIP = FirewallArgsPair[1]
if len(FirewallArgsPair) > 2 {
o.Rule.SrcIP = strings.Join(FirewallArgsPair[1:], ":")
} else {
o.Rule.SrcIP = FirewallArgsPair[1]
}
} else if FirewallArgsPair[0] == "destinationIP" {
o.Rule.DstIP = FirewallArgsPair[1]
if len(FirewallArgsPair) > 2 {
o.Rule.DstIP = strings.Join(FirewallArgsPair[1:], ":")
} else {
o.Rule.DstIP = FirewallArgsPair[1]
}
} else if FirewallArgsPair[0] == "portName" {
o.Rule.InPort = FirewallArgsPair[1]
} else if FirewallArgsPair[0] == "minSourcePort" {
Expand Down
12 changes: 9 additions & 3 deletions cmd/delete/delete_firewall.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,16 @@ func MakefirewallDeleteQuery(FirewallRule []string) (map[string]string, error) {
query := map[string]string{}
for _, v := range FirewallRule {
firewallArgsPair := strings.Split(v, ":")
if len(firewallArgsPair) != 2 {
return nil, fmt.Errorf("error: Failed to delete Firewall")
if len(firewallArgsPair) < 2 {
return nil, fmt.Errorf("error: Failed to delete Firewall - format error")
}
query[firewallArgsPair[0]] = firewallArgsPair[1]
value := firewallArgsPair[1]
if firewallArgsPair[0] == "sourceIP" || firewallArgsPair[0] == "destinationIP" {
if len(firewallArgsPair) > 2 {
value = strings.Join(firewallArgsPair[1:], ":")
}
}
query[firewallArgsPair[0]] = value
}
return query, nil
}
19 changes: 9 additions & 10 deletions pkg/api/lbversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package api
package api

type LBVersion struct {
CommonAPI
}

type LBVersionGet struct {
BuildInfo string `json:"buildInfo"`
Version string `json:"version"`
}

type LBVersion struct {
CommonAPI
}

type LBVersionGet struct {
BuildInfo string `json:"buildInfo"`
Version string `json:"version"`
}

0 comments on commit b9bb2bf

Please sign in to comment.